Non riesco a impostare il datacontext di UserControl (UserControl è nidificato all'interno di un altro UserControl).Set datacontext di child UserControl in WPF
mi hanno la struttura di seguito:
Views/ViewModels:
MainControl <-> MainViewModel <br>
UserControlA <-> ViewModelA<br>
UserControlB <-> ViewModelB<br><br>
ViewModels:<br>
ViewModelB
è una struttura di ViewModelA
MainViewModel istanzia ViewModelA
e ViewModelB
nel ctor
.
Visualizzazioni:
MainControl
contiene UserControlA
, che a sua volta contiene UserControlB
MainControl
assegna il ViewModelA
come il DataContext (Questo funziona come previsto)
<!-- MainControl Xaml-->
<UserControl x:Name="MainControl">
<views:UserControlA DataContext="{Binding ViewModelA}" />
</UserControl>
In UserControlA
i fare la stessa cosa come nel MainControl
, vincola il datacontext di UserControlB
al suo ViewModel
che è una proprietà nel ViewModelA
Questo non funziona come expe CTED ...
<!-- USerControlA Xaml-->
<UserControl>
.....
.....
<views:UserControlB DataContext="{Binding DataContext.ViewModelB}" />
</UserControl>
Grazie Stuart, in realtà si è rivelato essere un misspell stupido da parte mia con il mio modo di era vincolante il DataContext. Ho appena finito di leggere un articolo sul debug degli errori di binding che ha anche aiutato. Qui è [Debugging Binding Errors] http://www.wpf-tutorial.com/data-binding/debugging/
Sono d'accordo con te non c'è bisogno di DataContext.ViewModelB solo utilizzando ViewModel sarebbe sufficiente nel binding. – Anonymous