2012-07-25 80 views
1

舊的System.ComponentModel提供了一個DefaultValueAttribute,它應用於某個屬性時,將其標記爲在Windows窗體設計器等工具中具有默認值。爲InArgument提供默認值<T>

在WPF/Workflow Foundation世界中是否存在等價的屬性?以下內容不能按預期工作:

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

WPF設計器忽略此屬性聲明。

回答

1

相當於執行IActivityTemplateFactory,並在Create方法中設置所有的默認值。

您可以讓您的活動執行此操作,以防止大驚小怪。

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

使用此方法進行配置/初始化可以幫助您避免嘗試初始化活動時可能遇到的所有不正常情況。您還可以在該設計表面上執行一次強制轉換,並從設計界面的工作流程狀態(例如自動綁定到屬性)中獲取所需的所有內容。

IActivityTemplateFactory功能非常強大。它不僅限於添加單個活動。地獄,你可以投入一個完整的組裝,可以說,一個工作流程。它的好東西。