- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用内置的数据绑定(bind)来加载工作流定义并将其保存到使用重新托管的工作流设计器类、WPF 和 MVVM 的数据库中。我的 xaml.cs 文件以编程方式创建工作流设计器并将 WorkflowDEsigner.View 设置为选项卡内容控件。
我正在寻找一种将工作流设计器的属性数据绑定(bind)到我的 View 模型对象的方法。这样,当用户创建工作流定义并点击保存时,我的 View 模型将(通过数据绑定(bind))具有工作流定义的字符串表示形式,以便可以将其保存到数据库中。并且当用户点击加载时,将从数据库中查询工作流定义,并水合到 MVVM 对象中,然后将数据绑定(bind)到工作流设计器进行显示。
在调用 WorkflowDesigner.Save() 将定义保存到文件之前,不会填充 WorkflowDesigner.Text 属性。我绝对不想那样做。
目前,我正在通过 Hook WorkflowDesigner.ModelChanged 事件并在该事件处理程序中自行获取文本,然后手动设置 View 模型。有没有一种纯粹的数据绑定(bind)方式来实现这一点?
//设计器初始化
m_objWFWorkerDesigner = new WorkflowDesigner();
m_objWFWorkerDesigner.Context.Services.GetService<DesignerConfigurationService>().AnnotationEnabled = true;
m_objWFWorkerDesigner.Context.Services.GetService<DesignerConfigurationService>().TargetFrameworkName = new
System.Runtime.Versioning.FrameworkName(".NET Framework", new Version(4, 5));
m_objWFWorkerDesigner.Load(new System.Activities.ActivityBuilder());
m_objWFWorkerDesigner.ModelChanged += m_objWFWorkerDesigner_ModelChanged;
void m_objWFWorkerDesigner_ModelChanged(object sender, EventArgs e)
{
((RehostedWorkflowDesignerVM)this.DataContext).WorkerWorkflow = GetActivityString(sender);
}
private static string GetActivityString(object sender)
{
ActivityBuilder activityBuilder = (ActivityBuilder)((WorkflowDesigner)sender).Context.Services.GetService<ModelTreeManager>().Root.GetCurrentValue();
StringBuilder sb = new StringBuilder();
StringWriter tw = new StringWriter(sb);
XamlWriter xw = ActivityXamlServices.CreateBuilderWriter(new XamlXmlWriter(tw, new XamlSchemaContext()));
XamlServices.Save(xw, activityBuilder);
return sb.ToString();
}
最佳答案
WorkflowDesigner
及其周围的控件(工具箱、属性编辑器等)对 MVVM 不友好,因此您将无法以正确的方式将数据绑定(bind)到它们。
我在 FlowStudio 中所做的事情是将这些控件封装在真正的 WPF 控件中,该控件使用依赖项属性通过 XAML 启用数据绑定(bind)。
我已经开始对 ToolboxControl 做这件事了。您可以查看here .
关于wpf - 如何将 WorkflowDesigner 工作流定义数据绑定(bind)到 WPF 中的 MVVM View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23918087/
我正在研究适用于 Windows Workflow Foundation 的 Workflow Designer,我已经按照 MSDN 上的说明运行了一个托管设计器、工具箱和属性检查器的小应用程序:h
如何在重新托管的设计器中保存 WF4 工作流的 XAML,而不将其写入文件?我想将序列化工作流程作为 XML 字符串存储在数据库中。 给定一个名为 w 的 WorkflowDesigner 实例,这可
当用户在 WorkflowDesigner 设计图面( View )上使用 WF4 事件时,我想在停靠 Pane 中显示一些帮助文本。当用户选择新事件时,帮助文本需要更改。 当用户在重新托管的 WF4
我正在尝试使用内置的数据绑定(bind)来加载工作流定义并将其保存到使用重新托管的工作流设计器类、WPF 和 MVVM 的数据库中。我的 xaml.cs 文件以编程方式创建工作流设计器并将 Workf
我是一名优秀的程序员,十分优秀!