【问题标题】:How do I add a property changed callback to the Name property on object?如何将属性更改回调添加到对象上的 Name 属性?
【发布时间】:2012-01-18 20:49:42
【问题描述】:
由于我没有注册属性,我将如何添加属性更改回调?
这行得通:
public static readonly DependencyProperty NameProperty =
FrameworkElement.NameProperty.AddOwner(typeof(Node), new FrameworkPropertyMetadata("Node", new PropertyChangedCallback(NamePropertyChanged)));`
但是有一个我不明白的警告,所以也许还有另一种方法:
WpfApplication1.Node.NameProperty' 隐藏继承的成员 'System.Windows.FrameworkElement.NameProperty'。如果要隐藏,请使用 new 关键字。
【问题讨论】:
标签:
wpf
callback
dependency-properties
【解决方案1】:
您的类 Node 似乎派生自 FrameworkElement(或 FrameworkElement 的子类)。 Node 和 FrameworkElement 都定义了
public static readonly DependencyProperty NameProperty;
生成编译器警告。就写吧
public static new readonly DependencyProperty NameProperty ...
在类节点中。
你也可以写
FrameworkElement.NameProperty.OverrideMetadata(
typeof(Node),
new FrameworkPropertyMetadata("Node", new PropertyChangedCallback(NamePropertyChanged)));
在 Node 的静态构造函数中。