Name というプロパティに基づいて一意のオブジェクトを格納するキー付きの監視可能なコレクションを Silverlight に実装したいと考えています。これを行う 1 つの方法は、含まれている要素のすべての PropertyChanged イベントをサブスクライブする ObservableCollectionEx (別のスタック オーバーフロー ポストのサンプル) クラスを使用し、name プロパティが変更されるかどうかを確認することです。さらに良いことに、name 属性が変更されたことを通知する独自のイベントを作成し、アイテムが既に存在する場合は ValidationException をスローします。必ずしもインデクサー this[Name] を使用してオブジェクトを取得する必要はありません。
このようなもの:
private string name;
public string Name
{
get { return name; }
set {
if (value != name)
{
OnNameChanged();
name = value;
OnPropertyChanged("Name");
}
}
}
よりエレガントな別のソリューションはありますか? はるかに簡単ですか?ありがとう、エイドリアン
PS Wpf博士がまとめたObservableDictionaryもあり、Silvelightに簡単に移行できることは知っていますが、DataFormなどで使用する方法がわかりません。