Osc*_*Ryz 7 c# wpf dependency-properties
我已经创建了一个这样的依赖属性:
public partial class MyControl: UserControl
{
//...
public static DependencyProperty XyzProperty = DependencyProperty.Register("Xyz",typeof (string),typeof (MyControl),new PropertyMetadata(default(string)));
public string Xyz
{
get { return (string) GetValue(XyzProperty ); }
set { SetValue(XyzProperty , value); }
}
//...
}
Run Code Online (Sandbox Code Playgroud)
然后将它绑定到我的wpf窗口,一切正常.
当我尝试向setter 添加一些逻辑时,我注意到它没有被调用.我修改了get;设置为一个点现在它们看起来像这样:
get{return null;}
set{}
Run Code Online (Sandbox Code Playgroud)
它仍然有效!怎么会?GetValue/SetValue调用的用途是什么?
WPF数据绑定基础结构直接使用DependencyProperty,Xyz属性是程序员的便利接口.
看看DependencyProperty.Register调用中的PropertyMetadata,您可以提供一个在属性值更改时运行的回调,这是您可以应用业务逻辑的地方.