如何在依赖属性中获取/设置什么都不做?

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调用的用途是什么?

Chr*_*lor 7

WPF数据绑定基础结构直接使用DependencyProperty,Xyz属性是程序员的便利接口.

看看DependencyProperty.Register调用中的PropertyMetadata,您可以提供一个在属性值更改时运行的回调,这是您可以应用业务逻辑的地方.