Je suis en train de concevoir un UserControl qui contient une grille de données. La grille de données n'affiche aucune ligne malgré tous mes efforts pour la lier au ItemsSource
.Impossible de lier ItemsSource de DataGrid à l'intérieur du contrôle utilisateur WPF
Voici le flux de base de la liaison:
- Une fenêtre qui contient le UserControl.
- La fenêtre viewmodel contient une instance du viewmodel conçu pour le contrôle utilisateur.
- Je lie le ViewModel UserControl à ce viewmodel via la propriété de dépendance.
- La grille de données est ensuite liée à la collection observable dans le modèle de vue, mais rien ne s'affiche.
code (XAML et VB.Net):
Le modèle de vue de la fenêtre, binded à tous les contrôles de la fenêtre:
Public Class WindowVM
...
Public Property UserControlViewModel as New UserControlVM
End Class
fenêtre Xaml:
<local:MyUserControl ViewModel="{Binding UserControlViewModel, Mode=OneWay}"/>
Code de contrôle de l'utilisateur :
Public Shared ReadOnly ViewModelProperty As DependencyProperty = DependencyProperty.Register("ViewModel", GetType(UserControlVM), GetType(MyUserControl), New PropertyMetadata(Nothing))
...
Public Property ViewModel As UserControlVM
Get
Return CType(Me.GetValue(ViewModelProperty), UserControlVM)
End Get
Set(value As UserControlVM)
Me.SetValue(ViewModelProperty, value)
End Set
End Property
....
Public Class UserControlVM
Public Property RunItems As New ObservableCollection(Of RunVM)
End Class
XAML de contrôle de l'utilisateur, DataGrid reliure:
<DataGrid DataContext="{Binding ViewModel}"
ItemsSource="{Binding RunItems}" ...
Il semble que beaucoup d'étapes, mais à ma connaissance c'est la façon MVVM correcte serpent la liaison au DataGrid
. Jusqu'à présent rien.
Est-ce le code VB.NET? – ViVi
oui vb.net éditera la question – Tekito
Bien que vous l'ayez résolu vous-même. – ViVi