2012-01-18 47 views
1

由於我沒有註冊該屬性,我將如何添加一個屬性更改回調?如何將一個屬性已更改的回調添加到對象上的Name屬性?

這工作:

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

但我不明白的警告,也許有這樣做的另一種方式:

WpfApplication1.Node.NameProperty」隱藏繼承成員'System.Windows.FrameworkElement.NameProperty'。如果需要隱藏,請使用新關鍵字。

回答

0

您的類節點似乎是從FrameworkElement(或FrameworkElement的子類)派生的。 Node和FrameworkElement都定義爲

public static readonly DependencyProperty NameProperty; 

它生成編譯器警告。只需編寫

public static new readonly DependencyProperty NameProperty ... 

in class Node。

你也可以寫

FrameworkElement.NameProperty.OverrideMetadata(
    typeof(Node), 
    new FrameworkPropertyMetadata("Node", new PropertyChangedCallback(NamePropertyChanged))); 
在節點的靜態構造函數