2

Windows Phone 8 プロジェクトにローカル データベースを追加しようとすると、このエラーが発生します。

タイプ 'System.ComponentModel.INotifyPropertyChanging' は両方の 'e:\users\keenan\Documents\Visual Studio 2012\Projects\MAL.WindowsPhone\packages\Portable.MvvmLightLibs.4.1.27.1\lib\wp8\GalaSoft.MvvmLight に存在します。 dll」および「C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\System.dll」

System.ComponentModel.INotifyPropertyChangingMVVM Portable NuGet パッケージの WP8 ライブラリにあるのはなぜですか? Windows Phone 8 の mscorlib に既に含まれているものと競合すると思われるため、これはバグですか。

助けてください。

4

2 に答える 2

3

最新の Portable.MvvmLightLibs (4.1.27.3) をお試しください。INotifyPropertyChanging を PCL バージョンから削除する必要がありました。これは、プラットフォーム間で適切に動作させる方法が本当にないためです。

WP で正しく取得されるように、Microsoft がこのための shim (Microsoft.Bcl と同様) を提供する必要があります。

プロパティ変更通知が必要な場合 (値が変更される前 - これは非常にまれであり、これを使用するものはほとんどありません)、1 つのオプションとして、独自のインターフェイスを作成し、それを ObservableObject からの派生型に実装することができます (RaisePropertyChanging メソッドをオーバーライドして知ることができます)。独自のイベントをいつ発生させるか)。

Microsoft が PCL に INotifyPropertyChangning のサポートを追加した場合、私はそれを MVVMLight に戻すことは間違いありません。

于 2013-03-20T14:46:57.307 に答える
0

使用できる簡単な解決策の 1 つは、MVVM Light のソース コードをダウンロードし、ObservableObject の INotifyPropertyChanging へのすべての参照を削除することです。自分でライブラリをコンパイルすると、問題なく動作するはずです。

于 2013-03-18T20:27:43.520 に答える