2011-03-31 79 views
0

我有3個依賴屬性和一個FrameworkPropertyMetadata,當我嘗試在多個DP上使用元數據時,出現崩潰。我不想有3個重複的元數據是有辦法解決這個問題的。多次使用相同的FrameworkPropertyMetaData

static FrameworkPropertyMetadata propertyMetaData = new FrameworkPropertyMetadata("My Control", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault); 

    public static readonly DependencyProperty Property_A = DependencyProperty.Register("Property_A", typeof(string), typeof(MyControl), propertyMetaData); 
    public static readonly DependencyProperty Property_B = DependencyProperty.Register("Property_B", typeof(string), typeof(MyControl), propertyMetaData); 
    public static readonly DependencyProperty Property_C = DependencyProperty.Register("Property_C", typeof(string), typeof(MyControl), propertyMetaData); 

我需要聲明一個單獨的元數據,爲每個屬性或者我可以使用同一個?

感謝, 埃蒙·

回答

1

如果你想避免代碼重複(這似乎是合理的),你可以寫類似於簡單的實用方法:

private internal static FrameworkPropertyMetadata CreateDefaultPropertyMetadata() 
{ 
    return new FrameworkPropertyMetadata("My Control", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault); 
} 

,然後使用它:

public static readonly DependencyProperty Property_A = DependencyProperty.Register("Property_A", typeof(string), typeof(MyControl), CreateDefaultPropertyMetadata()); 
public static readonly DependencyProperty Property_B = DependencyProperty.Register("Property_B", typeof(string), typeof(MyControl), CreateDefaultPropertyMetadata()); 
public static readonly DependencyProperty Property_C = DependencyProperty.Register("Property_C", typeof(string), typeof(MyControl), CreateDefaultPropertyMetadata()); 

原諒我,如果我米解釋明顯的事情。

1

您需要聲明爲每一個新的。

+0

很害怕,謝謝 – 2011-03-31 11:24:33

相關問題