2011-07-12 6 views
0

私はバインディング機能を利用してこのシナリオをWPFで処理する方法を頭に入れようとしています。 私は、私が制御しないモデルを持っています。それは、いくつかの入力(実際にはロット)が出力を生成する外部システムです(ここでもたくさんあります)。このシステムの出力はUIに表示する必要がありますが、WFPバインディングを利用してインクリメンタルアップデートを実行する方法については疑問に思っています。モデルを制御せず、 (実際にはほとんど変更されていない可能性があるので、whileモデルを再バインドするのは実際には意味がありません)。非インクリメンタルフルモデル更新によるWPFバインディングの活用

データ全体を再バインドするのではなく、UIの増分更新を実行して、UIの滑らかさを失い、使いやすさの問題を表しています。 これを処理する一般的な方法はありますか、または単に出力を反映し、変更通知を人為的に生成する必要がありますか?

答えて

1

otuputsをObservableCollectionに格納し、そのUI要素をバインドします。モデル出力を更新してこれらのObservableCollectionにバックグラウンドで追加するコードを書くと、これらのObservableCollectionにバインドされた要素は自動的に更新されます。

私はのObservableCollectionクラスについて知っMSDN

+0

に、このオーバーをachiveする方法についてのケン・ゲッツによって良い記事がありますが、問題は、外部システムによって生成されたとき、私のモデルは、そのフォームではないということです。したがって、私はそれをObservableCollectionにマップし、毎回モデルを検査し、それに応じてObservableCollectionを変更することによって、追加や他の種類の変更を手動で処理することを提案していますか?正直言って、私はきれいなソリューションを望んでいた。 – bibendus

+1

私の提案は、モデルから出てくるデータをビジネスオブジェクト(CLRクラス)に変換し、UI要素がバインドするこれらのオブジェクトのObservableCollectionを作成することでした。あなたのバックグラウンドプロセスがあなたのモデルにクエリを照会して、ObservableCollectionからこれらのビジネスオブジェクトを更新/追加/削除し、UI要素がバインディングを介して変更を受け取ります... –

+0

これは私が話していることです。インクリメンタルなモデル更新を利用できない場合に、バインドされたUIの更新を処理するためのパターンはありますか? – bibendus

関連する問題