[英]Using the Same FrameworkPropertyMetaData more than once
我有3个依赖属性和一个FrameworkPropertyMetadata,当我尝试在多个DP上使用元数据时,我遇到了崩溃。 我不想有3个重复的metadatam是否有办法解决这个问题。
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);
我是否需要为每个属性声明单独的元数据,还是可以使用相同的元数据?
谢谢,Eamonn
你需要为每个声明一个新的。
如果你想避免代码重复(看起来合理),你可以编写简单的实用方法,类似于:
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());
如果我在解释明显的事情,请原谅。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.