我使用了一个小的基本视图模型来覆盖RaisePropertyChanged
和RaisePropertyChanging
,因此我可以在不传递属性名称的情况下引发通知(并自动获取)。登记/>
这就是它的实现方式:
public class MyBase_ViewModel : ViewModelBase
{
[NotifyPropertyChangedInvocator]
protected override void RaisePropertyChanged([CallerMemberName]string property = "")
{
base.RaisePropertyChanged(property);
}
[NotifyPropertyChangedInvocator]
protected override void RaisePropertyChanging([CallerMemberName]string property = "")
{
base.RaisePropertyChanging(property);
}
}
我刚从MvvmLight 4.something升级到5.0.2,我遇到的一个问题是它抱怨:没有合适的覆盖方法。
RaisePropertyChanging
。
有任何建议/想法吗?
答案 0 :(得分:0)
似乎从MVVM 5中删除了RaisePropertyChanging
。以下是Laurent(作者)的引用:
我不得不删除PropertyChanging支持,因为PCL框架不支持此事件。我试图看看我是否有一个很好的替代版本。
如果碰巧碰到这个,你可以删除重写方法,它应该可以工作。好像什么都不会发生。
另一方面,RaisePropertyChanging
似乎是在你想要在它消失之前对它做某事的时候使用的,而我实际上从未使用它。如果您需要它,您可以转到此主题,作者建议他可以根据需要提供解决方法:original thread on mvvm codeplex。