DataGrid sur UserControl n’affiche pas ObservableCollection lié

J’ai une MainWindow avec quelques boutons qui charge une collection:

                                     

Ensuite, j’ai un UserControl qui devrait afficher la collection chargée, mais ne montre rien.

                                          

Voici comment je mets les données dans la collection (les valeurs sont là si je débogue):

 Application.Current.Dispatcher.Invoke(() => MainWindowViewModel.ResultViewModel.Model.Collections.Add(Collection)); 

Collections est le type de ObservableCollection ;

On dirait qu’il me manque quelque chose dans la reliure mais je suis assez nouveau pour WPF et MVVM et je ne le trouve pas. J’ai lu sur DependencyProperty mais j’aimerais avoir un ViewModel pour mon userControl car il deviendra éventuellement plus complexe.

Je vais vraiment apprécier toute aide.

Vous avez deux instances de ResultViewModel , une dans la propriété MainWindowViewModel.ResultViewModel , l’autre directement affectée au DataContext de UserControl:

    

Supprimez ce qui précède du XAML de UserControl.

En général, un UserControl ne devrait jamais avoir son “propre” modèle de vue et vous ne devriez jamais définir explicitement sa propriété DataContext dans son code XAML ou derrière. Cela aurait pour effet de remplacer la valeur du DataContext hérité, qui contient l’instance ResultViewModel correcte.