Прямо сейчас у меня есть довольно большой ViewModel
с именем MainViewModel
, который содержит множество команд и свойств, которые могут быть организованы в более разумно названные ViewModels.
У меня, однако, есть только одно окно, и поэтому я должен иметь возможность выбирать правильные данные и команды из каждой модели SubViewModels ....
Я полагаю, что этого можно добиться с помощью свойств, но я не совсем уверен, как подойти к этому в XAML. (Или, если есть смысл в самих ViewModels)
Я понимаю, что могу установить DataContext
для SubViews так, как считаю нужным, но я хочу избежать того, чтобы мой View определял иерархию / организацию моих ViewModels.
Ex. псевдокод
SubAViewModel mvmB = new SubBViewModel();
SubAViewModel mvmA = new SubAViewModel();
MainViewModel mvm = new MainViewModel( mvmA, mvmB );
<Window DataContext="{StaticResource MainViewModel}">
//This is clearly wrong but is sort of what I am trying to achieve
<MenuItem Command="{Binding Path=MainViewModel.SubAVM.TargetCmd}" />
Вполне возможно, что MenuItem
или какой-либо другой UserControl
захочет получить доступ к Команде в SubBViewModel
и свойству в SubAViewModel
.