WPF で MVVM モデルを使用しているときに問題が発生しました。ここに私のオブジェクトがあります:
ビュー
MainWindow(View) (このビューの DataContext は MainWindowViewModel にバインドされます)
ItemViewWindow (このための DataContext は ItemListViewModel をバインドします)
ビューモデル
MainWindowViewModel (内容: ObservableCollection アイテム)
ItemListViewModel (内容: ObservableCollection Items、ItemViewModel SelectedItem、その他のプロパティ/コマンド)
ItemViewWindow は、MainWindow のメニュー ボタンからアクセスします。MainWindow から ItemView にコレクションだけを渡せるようにしたい (注: ItemListViewModel が必要なため、DataContext として設定することはできません)。次に、そこで行われた変更は MainWindow に反映されます。
Collection ではなく MainWindowViewModel のプロパティとして ItemListViewModel を使用する方法があることはわかっています。それを DataContext として渡すこともできますが、MainWindowViewModel に ItemListViewModel の追加機能を持たせるのは間違っているようです。UI コード ビハインドを使用せずにこれを行うよりエレガントな方法はありますか?