基本的に、私は常に、公開されている基本型をいつでも返す必要があり、内部で実装の詳細を心配する必要があることを常に理解していました。これは理にかなっています...
しかし、ここで何をすべきかわかりません。基本的に、今私は持っています:
ReadOnlyObservableCollection<Foo> MyFoos {get; private set; }
内部的に観察可能な部分を実際に使用したり、コレクションに書き込もうとしたりすることは決してないため、それを aReadOnlyCollection<Foo>
または anとして返す必要があるかどうか疑問に思っています。ICollection<Foo>
WPFは私が返すものを気にしないようですが、それでもバインドし、コレクションが変更された通知イベントを適切にトリガーします。しかし、私はどこかで、ViewModel を処理するビューを実際に使用するようにこれを設計する必要があることを読みました。
だから私はここで少し引き裂かれています。ReadOnlyObservableCollection<T>
プロパティを使用してできることとできないことを消費ビューに明示的に伝えるには、それを のままにしておくのが最も理にかなっていると思いますが、ダウンタイプをベースタイプに減らす必要があるという印象も受けています。できる。だから私はここで何をすべきかわからない。特に、WPF は私が返す型を気にしないという事実により、それが監視可能であることがわかります。