2

我想更好地了解在设计时使用 WF 4.0 中的自定义活动可以完成的功能和限制。更具体地说,我们可以在自定义活动中做什么,以便我们可以允许设计人员在设计时以自定义方式进行交互,以指定有关活动的详细信息/数据。

例如,我想创建一个活动 A,当工作流设计器将该活动放置在设计器中的工作流中时(Visual Studio 设计器或在单独的应用程序中重新托管的设计器),可以显示一个 .NET 对话框它允许用户输入数据(例如,通过打开文件对话框指定文件)并验证输入数据,即,只要特定文本框被聚焦或输入数据(事件处理程序),就会运行一些代码。

这可以完成并存储在工作流 XAML 文件中吗?

请注意,在实际设计工作流时,工作流设计器需要所有这些功能。

谢谢。

4

3 回答 3

1

WF4的设计师很能干。您可以向设计器添加控件,允许最终用户直接与设计图面进行交互,而无需使用属性表。您还可以向活动添加验证,以检查输入的数据是否可接受。所有这些都是在 C# 或 VB 代码中的活动级别完成的,而不是在工作流级别。我不确定活动被删除时的事件,但相信它们也受到支持(它们至少在 Wf3 中的位置,我希望它能够继续下去。

于 2009-09-02T13:28:02.310 回答
1

该视频讨论了如何创建自定义活动(带有文本框),以便您可以将值放在设计时..希望这对您有所帮助..

http://bloggersguides.net/media/p/188.aspx

于 2009-09-03T07:24:19.453 回答
1

当活动添加到您的工作流程时,您可以通过多种方式连接到事件通知。

第一个是在 WorkflowDesigner 类(Beta1)上监听 TextChanged 事件,或者我认为会有一个 ModelChanged 事件(在 Beta2 中),这更可靠。这是您的工作流程发生变化的通知。不是什么特别的东西,只是一些东西,但您可以使用它作为一个触发器来遍历您的工作流程并寻找新的、未配置的活动。

第二种可能性是利用每个 ModelItem(它是活动的设计时包装器)实现 INotifyPropertyChanged 的​​事实。您可以监听特定属性的更改,而不是监听整个工作流程中的更改,例如 While 活动的“主体” - 然后当属性被初始化以保存新活动时,响应更改。

第三种可能性是您感兴趣的活动有一个自定义设计器(您编写的) - 听起来这个场景与您的想法相符。在这里,您可以完全自定义活动的外观。自定义设计器实际上只是一个 WPF 控件。您可以使用在设计 WPF 应用程序时应用的相同事件以及数据绑定和验证技术,或响应正常的 WPF 事件。如果您愿意,您当然可以弹出对话框。

至于存储在 XAML 文件中,当然自定义活动与其所有配置的属性一起保存在 XAML 文件中 - 就像常规活动一样。当您想要再次加载 XAML 文件时,您需要提供有关包含 XAML 文件引用的活动的程序集的上下文信息。在 VS 中,这就像添加程序集引用一样简单,在重新托管场景中,您将编写一些代码来执行此操作。

您可能想在 .NET Framework 4:Workflow Foundation - Beta 1 论坛上找到更多相关信息或提出类似问题

于 2009-10-10T23:31:08.130 回答