WPF自定义控件的依赖项属性
问题描述:
我对如何设置自定义控件的依赖项属性感到一团糟。WPF自定义控件的依赖项属性
我创建了自定义控件,所以它派生自Control类。
public class CustControl : Control
{
static CustControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CustControl), new FrameworkPropertyMetadata(typeof(CustControl)));
}
}
为了设置依赖属性,我必须在一个必须从DependencyObject派生的类中注册它。所以它应该是另一个类:
class CustClass : DependencyObject
{
public readonly static DependencyProperty MyFirstProperty = DependencyProperty.Register("MyFirst", typeof(string), typeof(CustControl), new PropertyMetadata(""));
public string MyFirst
{
get { return (string)GetValue(MyFirstProperty); }
set { SetValue(MyFirstProperty, value); }
}
}
我现在怎么可以设置MyFirst财产依赖属性CustControl?
答
为了设置依赖属性,我必须在一个必须从DependencyObject派生的类中注册它。所以它应该是另一类:
不,它不应该。 Control
已经源自DependencyObject
。由于继承是transitive,这也使得CustControl
也是DependencyObject
的子类型。只要把它全部纳入:CustControl
:
public class CustControl : Control
{
static CustControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CustControl), new FrameworkPropertyMetadata(typeof(CustControl)));
}
public readonly static DependencyProperty MyFirstProperty = DependencyProperty.Register("MyFirst", typeof(string), typeof(CustControl), new PropertyMetadata(""));
public string MyFirst
{
get { return (string)GetValue(MyFirstProperty); }
set { SetValue(MyFirstProperty, value); }
}
}
是的,它的工作原理!非常感谢! – rem 2009-12-05 08:49:28