3

独自のカスタム更新通知を実装するコレクション クラスがいくつかあります。INotifyCollectionChangedこれらの通知をプロキシ クラスの実装に変換するのは非常に簡単です。

INotifyPropertyChangedすでに処理されています。この質問は、コレクション プロキシに関するものです。

そこで、私が探しているのは、XAML から比較的使いやすいプロキシを作成する方法です。これは特にサブコレクションに当てはまります。カスタム コレクション クラスは、変更 (または派生) できないライブラリの一部です。また、コレクション型を互換性のあるものに置き換えることもできませんINotifyCollectionChanged。これは、データ更新コードが制御できないためです。

SL でも機能するソリューションを希望しますが、厳密な要件ではありません。

これまでのところ、次のアプローチが実行可能であると考えています。

  • TypeDescriptionProviderプロパティを追加するコレクション クラスの登録済みを定義しProxyます。これにより、Binding パスをプロキシにドットインすることができます。このソリューションは、XAML の観点からは最も簡単なようですが、SL とは互換性がありません。
  • プロキシを作成する値コンバーターを定義します。これは、XAML 側からのもう少しの作業で機能します。SLで使えるはずです。ただし、パスで複数の値変換が必要な場合は、値コンバーターの結果を保持するために「中間」ビジュアル要素が必要になる場合があります。

を調べましObjectDataProviderたが、このような状況では使用できないと思います(プロキシの作成方法は、コンテナ内のオブジェクトのタイプでジェネリックでなければなりません)。

これら2つのアプローチのどちらが優れているか、または他のアプローチに関する推奨事項はありますか?

4

2 に答える 2

1

このブログ投稿MarkupExtensionで説明されているように、型コンバーターでもある型コンバーターを進めることにしました。

MarkupExtension現在 Silverlight ではサポートされていませんが、v5 でサポートされる予定です。

于 2011-07-07T20:12:27.560 に答える