Im Moment habe ich eine ziemlich große ViewModel
namens MainViewModel
, die eine Menge von Befehlen und Eigenschaften enthält, die in vernünftig benannte ViewModels organisiert werden könnten.Wie verschachtle ich mehrere ViewModels in einem ViewModel der obersten Ebene in einer Art Hierarchie, die in meinen Ansichten verteilt werden kann?
aber ich, nur ein Fenster haben, und so müssen in der Lage sein, um herauspicken die gültigen Daten und Befehle von jedem der SubViewModels ....
ich meine, diese Eigenschaften mit Hilfe erreicht werden könnte, aber Ich bin mir nicht sicher, wie ich das im XAML angehen soll. (Oder, wenn es eine Implikation in den Viewmodels selbst)
Ich weiß, dass ich die DataContext
auf Subviews einstellen können, wie ich es sehen, aber ich möchte, dass meine Ansicht die Hierarchie/Organisation meines Viewmodels diktieren vermeiden müssen.
Ex. Pseudo-Code
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}" />
Es ist durchaus möglich, dass ein MenuItem
oder ein anderes UserControl
einen Befehl in SubBViewModel
und eine Eigenschaft in SubAViewModel
zugreifen möchten.
Verrückt, hatte ich meine Zweifel, aber das funktioniert tatsächlich. Vielen Dank. – Nicholas
Gern geschehen! – Raffaeu