【问题标题】:WF4 Argument as PropertyWF4 参数作为属性
【发布时间】:2011-04-06 14:59:44
【问题描述】:

我的情况如下: 我有一个为我的系统执行基本操作的工作流(我们称之为 customActivity1)。我还有另一个使用 customActivity1 并执行更高级别操作的工作流 (customActivity2)。当我调用 customActivity1 时,我必须传递一些参数,例如布尔值或字符串值。我想将其中一些参数显示为复选框或组合框(因此 customActivity2 的开发人员只能传递有效值)并发现我可以通过将参数设置为 PROPERTY(而不是 In)来做到这一点。 通过研究,我还发现你不能直接在表达式中使用这个参数,所以我的 customActivity1 总是出错。

也就是说,我知道我需要缩小设计师可以传递的范围,如果不使用活动设计师,我怎么能做到这一点,或者我在哪里可以找到答案?

我还附上了两张图片,一张是我需要的,另一张是我遇到的错误。

提前致谢。

【问题讨论】:

  • 不清楚您所说的“我还有另一个使用 customActivity1 的工作流程 (customActivity2)”(使用?如何?CA2 是否放在 CA1 中?)以及您所说的“传递”是什么意思(您希望将 CA1 中的 InArgument 绑定到 CA2 中定义的公共变量吗?)
  • 我的意思是 CA1 在 CA2 里面。 “传递”是指将 CA2 公共变量绑定到 CA1 参数。问题是我想在 CA1 上使用 Properties 而不是 InArguments

标签: properties workflow-foundation-4 variable-assignment arguments


【解决方案1】:

InArgument 只显示文本字段而不是复选框的原因是因为它们是表达式而不是文字值。但是仍然存在类型检查,如果输入值 1,则会收到错误消息,即整数无法转换为布尔值。

【讨论】:

    【解决方案2】:

    你不能这样做。您只能绑定到 InArguments。

    如果您绑定一个 InArgument 并查看 xaml,您会看到如下内容:

    <p1:MyActivity MyInArgument="[BoundValue]" ...
    

    工作流运行时知道如何处理这些。它不知道如何处理绑定 POCO 属性。

    【讨论】:

      【解决方案3】:

      如果您想对数据流建模,但希望在属性网格中获得不同的用户体验,我建议使用参数(因为它们传达数据流语义)并为这些参数自定义属性网格。在 WF4 示例中有一个示例演示了如何执行此操作(示例自述文件位于 http://msdn.microsoft.com/en-us/library/ee834515.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-05
        • 1970-01-01
        • 1970-01-01
        • 2017-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多