1

OldSystem.ComponentModel提供了一个DefaultValueAttribute,当应用于属性时,将其标记为在诸如 Windows 窗体设计器之类的工具中具有默认值。

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

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

WPF 设计器忽略此属性声明。

4

1 回答 1

1

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

您可以让您的 Activity 实现此功能,以减少麻烦和混乱。

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

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

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

于 2012-07-25T18:01:44.697 回答