私のアプリには、キーと値のペアの形式で外部ソースから定期的にデータを取得するバックグラウンド スレッドがあります。アプリ全体の多数のビューでデータが必要になるため、おそらく何らかの静的 (?) モデルに格納することによって、バインディング用にこのデータを公開したいと思います。これらのキーは数百ある可能性があり、顧客ごとに異なる可能性があるため、各値のプロパティを持つ INotifyPropertyChanged モデルを単純に作成することはできません。
このアプリには、一度に複数のビューが表示されます。それぞれのビューには、上記のコレクション内の個々の項目にバインドしたい多数のコントロール (通常はテキスト ボックス) があります。コレクション内の値が更新されると、その項目のみにバインドされたすべてのコントロールが変更され、新しい値が反映されます。ObservableCollection
単一のアイテムを変更すると、バインドされているアイテムに関係なく、すべてのコントロールが更新されるため、ここでは適していないと思いますか?
ミックスをさらに複雑にするために、一部の値 (数値) は表示用に書式設定する必要があります。フォーマット ルールはユーザー定義であるため、XAML バインディングのStringFormat
式に (たとえば) ハードコードすることはできません。理想的には、生の値 (計算用など) とフォーマットされたバージョン (表示用) の両方にアクセスできる必要があります。巧妙な WPF 機能を使用して、後者を実現できるはずです。
これらの要件をどのように解決できるかについての指針をいただければ幸いです。
編集:私は以前にモデルをある種のコレクションとして実装しようとしたことに言及する価値があります。問題は、最初にすべての値が取り込まれるわけではなく、しばらくしてから追加されることです。それらが最終的に追加されても、バインドされたコントロールは更新されません。おそらく、最初に欠落している値にバインドできなかったためです。