我一直在使用 ObservableObject 和其他一些派生自它的类,例如 ViewModelBase
我更新到版本 5.0.1.31549。并且 ObserableObject 似乎不再实现 INotifyPropertyChanging

是否有一个原因?是否有其他类可以使用,或者我应该自己实现接口(interface)和相关方法(如 RaisePropertyChanging())?

最佳答案

原因可能是因为 PCL 项目不支持 INotifyPropertyChanging 并且 MvvmLight 已将其大部分基本代码移至 PCL 项目以支持桌面和移动设备。你可以看到它 commented in the source 。您需要浏览到 ObservableObject 。好像不能直接链接。 "GalaSoft.MvvmLight -> GalaSoft.MvvmLight (PCL) -> ObservableObject.cs"

public class ObservableObject : INotifyPropertyChanged /*, INotifyPropertyChanging*/

您还可以查看 alternate approach 的这个答案,您可以用它来实现您自己的需求。

请注意,它仍然实现 INotifyPropertyChanged 并且 ViewModelBase 仍然源自 ObservableObject ,因此在大多数情况下,它们应该适用于使用 MvvmLight 的桌面或移动设备。

关于c# - 为什么 MVVM-Light 中的 ObservableObject 不再实现 INotifyPropertyChanging?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26398993/

10-13 05:56