1

MVVMパターンを理解しようとしていますが、サンプルプログラムを使用して作業しました。モデルはC#.netライブラリであり、クエリを実行するとIList<INote>オブジェクトが返されます。データバインディングを介して、ビューでこのコレクションのアイテムを追加/編集/削除できるようにしたいと思います。しかし、MVVMを使用してこれを開始する方法がわかりません。私を助けてください。

モデルは、オブジェクトを取得するためのインターフェイスを公開します。ビューには、データを追加するためのその他のコントロールIList<INote>の内容といくつかを示すリストボックスがあります。IList<INote>IList<INote>

4

3 に答える 3

3

リストボックスをにバインドするObservableCollection<T>と、リストボックスに何かを追加または削除するたびに即座に更新されますObservableCollection<T>

これObservableCollection<T>は通常、ViewModelのプロパティである必要があります。

モデルのIListプロパティが監視できない場合(およびそれを制御できない場合)、ViewModel内でプロパティを同期するためのコードを記述する必要があります。これらは、当時のアーキテクチャの問題です。この点で最もクリーンな選択は、実際にを使用ReadOnlyObservableCollection<T>し、リポジトリを使用してアイテムを追加/削除し、それに応じて同期することだと思います。

于 2010-01-13T18:29:48.413 に答える
1

の私のブログ投稿DelegateCommandあなたに良い基礎を与えるはずです。

于 2010-01-13T18:28:31.363 に答える
0

リストボックスをにバインドObservableCollection<Item>し、このコレクションにアイテムを追加/削除/変更しました。正常に動作します。INotifyPropertyChangedなしでどのように機能するかを確認してください。私が間違っている場合は私を訂正してください

于 2010-01-18T11:49:05.390 に答える