実行時にtabcontrolsをアプリケーションに追加します。各タブコントロールには、DataContextとしてViewModelが与えられます。メインのApp Viewにメッセージを送信してタブコントロールを追加します。メッセージには、datacontextとして使用されるViewModelが含まれています。MVVMバインディング - Viewでコントロールを作成する方法、ViewModelでプロパティにバインドする方法
メインアプリケーションのViewModelから、メインのアプリケーションビューにメッセージを送信してTabItemを作成し、指定したTabControlに追加することでタブコントロールにタブアイテムを追加します。
TabControlの特定のプロパティをTabControlのViewModelの特定のプロパティにバインドしたいと思います。もちろん、これはプログラマティカルに行う必要があります。
ViewControlとTabitemはViewModel(DataContextのみ)を認識しないので、ViewModelのプロパティを指定してタブアイテムのプロパティをバインドする方法を教えてください。何かアドバイスのため
おかげで...
Messenger.Default.Register<AddTabControlMessage>(this, m =>
{
TabControl tc = new TabControl();
tc.DataContext = m.ViewModel;
// etc.
});
Viewには、そのような種類のVMとのカップリングが必要ですか?返信をありがとう.... – Number8
これはXAMLでプロパティ= {Binding VMProperty}を設定することで実現できますが、ここでビューを作成しているので、これはオプションではありません。理想的には、Unityのようなコンテナを使用してTabControlsをシェルに追加します。 – NickHeidke