为InArgument <t> </t>提供默认值

时间:2012-07-25 17:18:08

标签: wpf workflow-foundation-4

System.ComponentModel提供DefaultValueAttribute,当应用于属性时,会将其标记为在Windows窗体设计器等工具中具有默认值。

WPF / Workflow Foundation世界中是否存在等效属性?以下没有按预期工作:

[DefaultValue('|')] // From System.ComponentModel
public InArgument<char> ColumnSeparator { get; set; }

WPF Designer忽略此属性声明。

1 个答案:

答案 0 :(得分:1)

等效于实施IActivityTemplateFactory,并在Create方法中设置所有默认值。

你可以让你的Activity实现这一点,以便保持低调和麻烦。

public sealed class MyActivity : NativeActvity, IActivityTemplateFactory
{
    public Activity Create(DependencyObject target) { /*...*/ }
    // snip

使用此方法进行配置/初始化将帮助您避免在尝试初始化活动时可能遇到的所有奇怪的角落情况。您还可以对target执行强制转换,并从设计界面内的工作流状态中获取所需的一切(例如,自动绑定到属性)。

IActivityTemplateFactory非常强大。它不仅限于添加单个活动。地狱,你可以放入一个完全建成的子组件,可以说是一个工作流程。它的好东西。