0
我可能会这样做都是错误的......所以与我挂在一起做WPF绑定绕过依赖性属性的代码隐藏setter?
我正在用户可以绑定到一个属性的用户控件。在属性的setter中,我将PropertyChanged侦听器绑定到属性,以便对其状态的更改作出反应。此用户控件后面的代码看起来是这样的:
public static readonly DependencyProperty NodeProperty =
DependencyProperty.Register("Node", typeof(MockRequirementWrapper), typeof(RecNode2));
public MockRequirementWrapper Node
{
get
{
return (MockRequirementWrapper)GetValue(NodeProperty);
}
set
{
if(Node != null)
Node.PropertyChanged -= Update;
SetValue(NodeProperty, value);
Node.PropertyChanged += new PropertyChangedEventHandler(Update);
OnPropertyChanged(this, "Node");
}
}
然后在另一个用户控件,我绑定到这个属性我在其他地方创造了这样一个节点:
<local:RecNode2 Node="{Binding}"/>
我是什么发现是recnode存在并且绑定到一个节点上......但是如果我在setter中放置了一个断点,它永远不会被调用。我误解了这个绑定是如何工作的?如何在节点更改时添加侦听器?