每个人都看过基本示例:
private void RaisePropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
但是,作为WPF和MVVM的初学者,我无法在PropertyChanged
事件中找到实际示例:
1. null
2. 被另一个线程更改。
有人能给我一个实际的例子吗?
答案 0 :(得分:2)
如果您的运行单元在ViewModel上进行测试,则可能是子弹1( null )的实际示例。在这种情况下,没有绑定到ViewModel的UI,并且如果测试方法(Test1
)在没有订阅PropertyChanged
事件的情况下更新属性,您将获得{ {1}}。
如果第二次单元测试(NullReferenceException
)同时运行,则子弹2(线程)的实际示例(线程)可能如上面的Test1在另一个线程中。第二个测试 在Test1无意中触发事件之前的某个时间订阅了该事件,但是在Test2
测试的中间再次取消订阅:
if