2011-03-31 78 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

相关问题