【问题标题】:Entering Data in a Custom Activity at Design Time (WF 4.0)在设计时在自定义活动中输入数据 (WF 4.0)
【发布时间】:2009-09-02 07:40:41
【问题描述】:

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

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

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

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

谢谢。

【问题讨论】:

    标签: workflow-foundation workflow-foundation-4


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

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

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多