Sto provando a creare un'applicazione utilizzando il modello MVVM con i modelli di visualizzazione nidificati. Il master viewmodel è ShellView che contiene tre UserControls, ciascuno con il proprio viewmodel. Lo ShellView ViewModel viene creato nel code-behind in questo modo:Impostazione del datacontext di UserControl su ViewModel definito nel modello di visualizzazione principale
public ShellView()
{
InitializeComponent();
_shellViewModel = new ShellViewModel();
DataContext = _shellViewModel;
}
Ora, il mio ShellViewModel contiene gli altri ViewModels come proprietà:
public CustomerViewModel CustomerViewModel { get; set; }
public ContactsViewModel ContactsViewModel { get; set; }
Come si accede a questi oggetti di XAML dei controlli utente? Mi piacerebbe essere in grado di fare qualcosa del tipo:
DataContext="<<ParentWindowViewModel>.CustomerViewModel>
Come posso realizzare questo? Ho già provato:
DataContext="{Binding DataContext.CustomerViewModel, RelativeSource={RelativeSource FindAncestor, AncestorType=Window, AncestorLevel=1}, Path=DataContext.CustomerViewModel}">
ma il debugger dice "Impossibile risolvere proprietà 'CustomerViewModel' nel contesto dati di tipo 'oggetto' Qualsiasi aiuto sarebbe apprezzato