Ich versuche eine Anwendung zu erstellen, die das MVVM-Muster mit verschachtelten Viewmodels verwendet. Das Hauptansichtsmodell ist ShellView, das drei Benutzersteuerelemente mit jeweils einem eigenen Ansichtsmodell enthält. Das ShellView Ansichtsmodell wird in erstellt Code-Behind etwa so:DataContext von UserControl auf ViewModel setzen, das im übergeordneten ViewModel definiert ist
public ShellView()
{
InitializeComponent();
_shellViewModel = new ShellViewModel();
DataContext = _shellViewModel;
}
Nun, mein ShellViewModel die anderen Viewmodel als Eigenschaften enthält:
public CustomerViewModel CustomerViewModel { get; set; }
public ContactsViewModel ContactsViewModel { get; set; }
Wie greife ich auf diese Eigenschaften vom XAML der Benutzersteuerelemente? Ich möchte in der Lage sein, etwas zu tun wie:
DataContext="<<ParentWindowViewModel>.CustomerViewModel>
Wie kann ich das erreichen? Ich habe bereits versucht:
DataContext="{Binding DataContext.CustomerViewModel, RelativeSource={RelativeSource FindAncestor, AncestorType=Window, AncestorLevel=1}, Path=DataContext.CustomerViewModel}">
aber der Debugger sagt: „Kann nicht lösen Eigenschaft‚CustomerViewModel‘in Datenkontext vom Typ‚Objekt‘Jede mögliche Hilfe geschätzt