如何将属性更改的回调添加到对象的Name属性?

时间:2012-01-18 20:49:43

标签: wpf callback dependency-properties

由于我没有注册属性,我如何添加属性更改回调?

这有效:

public static readonly DependencyProperty NameProperty =
    FrameworkElement.NameProperty.AddOwner(typeof(Node), new FrameworkPropertyMetadata("Node", new PropertyChangedCallback(NamePropertyChanged)));`

但是有一个我不明白的警告,所以也许还有另一种方法:

  

WpfApplication1.Node.NameProperty'隐藏继承的成员'System.Windows.FrameworkElement.NameProperty'。如果想要隐藏,请使用new关键字。

1 个答案:

答案 0 :(得分:0)

您的类Node似乎派生自FrameworkElement(或FrameworkElement的子类)。 Node和FrameworkElement都定义了

public static readonly DependencyProperty NameProperty;

生成编译器警告。只需写下

public static new readonly DependencyProperty NameProperty ...

在Node类中。

你也可以写

FrameworkElement.NameProperty.OverrideMetadata(
    typeof(Node),
    new FrameworkPropertyMetadata("Node", new PropertyChangedCallback(NamePropertyChanged)));

在Node的静态构造函数中。