当我尝试将本地数据库添加到Windows Phone 8项目时,我收到了这个有趣的错误。
类型'System.ComponentModel.INotifyPropertyChanging'存在于 'e:\ users \ keenan \ Documents \ Visual Studio 2012 \项目\ MAL.WindowsPhone \包\ Portable.MvvmLightLibs.4.1.27.1 \ LIB \ WP8 \ GalaSoft.MvvmLight.dll” 和'C:\ Program Files(x86)\ Reference 组件\微软\框架\的WindowsPhone \ V8.0 \ System.dll中“
为什么MVVM Portable NuGet包的WP8库中有System.ComponentModel.INotifyPropertyChanging
?这是一个错误,因为我认为它与Windows Phone 8的mscorlib中已有的相冲突。
请帮忙。
答案 0 :(得分:3)
请尝试最新的Portable.MvvmLightLibs(4.1.27.3)。我不得不从PCL版本中删除INotifyPropertyChanging,因为实际上没有办法让它在各个平台上正常工作。
我们需要Microsoft为此提供一个垫片(类似于Microsoft.Bcl),以便在WP上正确选择它。
如果你需要更改属性通知(在值更改之前 - 这是非常罕见的,很少有东西使用它),一个选项可能是创建自己的接口并在ObservableObject的派生类型中实现它(你可以覆盖RaisePropertyChanging知道何时举起自己的事件的方法。
如果Microsoft在PCL中添加对INotifyPropertyChangning的支持,我肯定会将其添加回MVVMLight。
答案 1 :(得分:0)
您可以使用的一个简单解决方案是下载MVVM Light的源代码并删除ObservableObject中对INotifyPropertyChanging的所有引用。自己编译库,它应该可以正常工作。