我有一个带依赖项属性的自定义控件。我知道如果依赖属性是引用类型,我需要在控件的每个实例中初始化它,否则它们都使用相同的对象。在普通控件中,我在构造函数中执行此操作。但在我的自定义控件中,我该怎么做? OnApplyTemplate()方法?
答案 0 :(得分:0)
DependencyProperty
可以使用传统方式创建,例如在您声明DependencyProperty
的任何类中。在CustomControl
中声明依赖属性没有特殊规则。
public class YourCustomControl : Control
{
public static readonly DependencyProperty TestPropProperty =
DependencyProperty.Register("TestProp", typeof(string), typeof(TestControl), new UIPropertyMetadata(null));
public string TestProp
{
get { return (string)GetValue(TestPropProperty); }
set { SetValue(TestPropProperty, value); }
}
static YourCustomControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(TestControl), new FrameworkPropertyMetadata(typeof(TestControl)));
}
}
答案 1 :(得分:0)
您可以为自定义控件同时拥有静态构造函数和实例构造函数。初始化实例构造函数内部的引用类型依赖项属性。