如果标题有点误导我并不知道怎么说出来,我道歉。
我的问题是DependencyProperty何时执行其等同性检查并且你能拦截它吗?
我的ViewModel上有一个名为ExposedObject的属性,我的UserControl上有ExposedBinding DependencyProperty
视图模型:
public MyObject ExposedObject
{
get { return _ExposedObject; }
set
{
_ExposedObject = value;
OnPropertyChanged();
}
}
用户控件:
private static readonly DepedencyProperty ExposedBindingProperty = DependencyProperty.Register(..., ...(null, PropertyChangedCallback));
现在我调用ExposedObject上的setter将它设置为自身(只是为了得到我想要的行为)因此调用OnPropertyChanged(),这确实会导致调用ExposedObject上的getter。但是我的DependencyPropertys' PropertyChangedCallback没有触发(正如预期的那样,它是同一个对象),但是我想知道的是,是否可以检测到沿绑定推送的值?即使存储在DependencyProperty上的值与被推送的对象相同,我还需要在需要时做出相应的响应?