0
我将Postharp实施到使用MVVM-Light制作的现有项目中。我定义我的视图模型属性如下:NotifyPropertyChanged属性产生编译器错误
public WindowState WindowState
{
get
{
return windowState;
}
set
{
if(windowState != value)
{
windowState = value;
RaisePropertyChanged("WindowState");
}
}
}
我实现PostSharp的NotifyPropertyChanged
属性:
[NotifyPropertyChanged]
public class MainViewModel : ViewModelBase
{
public WindowState WindowState { get; private set; }
}
现在启动程序,当我得到这个编译错误:
Class ViewModels.MainViewModel implements INotifyPropertyChanged but does not define an OnPropertyChanged method with the following signature: void OnPropertyChanged(string propertyName)
我是否必须将这种方法实现到我的viewmodel中,甚至是实现一个被覆盖的ViewModelBase?
是的。当你继承一个类时,经常需要实现与继承类关联的方法。在这种情况下,需要更改事件来通知Window Paint方法以使用新数据更新窗口。请参阅:https://www.postsharp.net/model/inotifypropertychanged – jdweng
对我来说,这是“大规模缩减”的区别。我能否将这个方法覆盖到从ViewModelBase继承的基类中?我想保留这种方法在我的ViewModel实现中。 – chris579
是或另一个.cs模块中的另一个部分类。 – jdweng