2

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

INotifyPropertyChangedはすでに処理されています。この質問は収集プロキシに関するものです。

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

私はSLと同様に動作するソリューションを希望しますが、厳密な要件ではありません。

これまでのところ、私は次のようなアプローチが生存していると信じて:

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

私はObjectDataProviderに見えたが、私はそれが(プロキシの作成方法は、コンテナ内のオブジェクトの種類の総称である必要があります)、このような状況で使用することができるとは思いません。

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

答えて

1

私はthis blog postで説明するように、またMarkupExtensionある型コンバータで前方に移動することを決めました。

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

+1

リンクが死んでいる=( – Maslow

+0

@Maslow:[アーカイブ]にあります(https://web.archive.org/web/20100424070706/http://blog.wpfwonderland.com/2010/04/15/simplify -your-binding-converter-with-a-custom-markup-extension /)を使用します。 –

関連する問題