0

WPFアプリケーションを構築していて、ドメインモデルの作成中に使用しObservableCollection<T>ました。
明らかにSystem.Collections.ObjectModel名前空間に属しているという理由だけで使用を許可しました。

実行中にエラーが発生しました。SOのスレッドがすでにここの問題を扱っているのを見つけました:スレッドセーフなCollectionViewはどこで入手できますか?

私の質問はObservableCollection<T>、System.Collections.ObjectModel名前空間にあると仮定すると、なぜユーザーインターフェイスに関連する制限があるのですか?それはアーキテクチャの欠陥ですか、それとも意図されたものですか?ドメインモデルで使用するのは良い習慣ですか?

4

1 に答える 1

2

私はこれを設計上の欠陥とはまったく考えていません。そして、それらをWPFドメインモデルで使用します。監視可能なコレクションを更新するときはいつでも、UIスレッドで更新するようにします。これは非常に簡単です。また、独自の実装を作成したため、監視可能なコレクションを更新するたびに、すべてのアイテムが追加または削除されるまで、コレクションの更新メソッドを無効にします。これにより、バインディングのパフォーマンスが大幅に向上します。

于 2012-05-06T11:44:05.053 に答える