WPF (4 以降) と Silverlight (4 以降) をサポートしたい VS 2010 プロジェクトで PCL を試しています。以下のMS ドキュメントの抜粋は、私にとって混乱を招きます。
PCL プロジェクトで System.Windows を参照するように言っているようですが、その方法がわかりません。
PCL プロジェクトで ICommand と INotifyPropertyChanged を使用するにはどうすればよいですか?
ビュー モデル パターンのサポート Silverlight と Windows Phone 7 を対象とする場合、ソリューションにビュー モデル パターンを実装できます。このパターンを実装するクラスは、Silverlight の System.Windows.dll アセンブリにあります。.NET Framework 4 または Xbox 360 を対象とするポータブル クラス ライブラリ プロジェクトを作成する場合、System.Windows.dll アセンブリはサポートされません。
このアセンブリのクラスには、次のものが含まれます。
System.Collections.ObjectModel.ObservableCollection
System.Collections.ObjectModel.ReadOnlyObservableCollection
System.Collections.Specialized.INotifyCollectionChanged
System.Collections.Specialized.NotifyCollectionChangedAction
System.Collections.Specialized.NotifyCollectionChangedEventArgs
System.Collections.Specialized.NotifyCollectionChangedEventHandler
System.Windows.Input.ICommand
.NET Framework 4 にもこれらのクラスが含まれていますが、System.Windows.dll 以外のアセンブリに実装されています。これらのクラスをポータブル クラス ライブラリ プロジェクトで使用するには、.NET Framework 4 ドキュメントにリストされているアセンブリではなく、System.Windows.dll を参照する必要があります。
編集
INotifyPropertyChanged は利用できません。以下のコードはコンパイルされません
public abstract class ViewModelBase : INotifyPropertyChanged
{
public virtual event PropertyChangedEventHandler PropertyChanged;
...
}