La liaison Datatable à un contrôle datagrid dans WPF
J'ai un modèle de vue dans mon C# 4.0 application qui a un System.Data.DataTable
créé à l'aide d'un appel de service. Je veux lier cela à un datagrid
dans mon fichier XAML.
J'ai essayé de suivre la ligne de DataGrid_Loaded événement, mais son licenciement avant ma datatable est créé à l'intérieur du modèle de vue.
xaml:
<dg:DataGrid Name="myDataGrid" Loaded="DataGrid_Loaded"/>
xaml.cs:
myDataGrid.ItemsSource = myViewModel.myDataTable.DefaultView;
Vous devez vous connecter pour publier un commentaire.
Vérifier la suggestion suivante: Dans votre code derrière vous, vous devez définir la grille de
DataContext
à votreDataTable
:Dans votre XAML, vous devez indiquer que le
ItemsSource
a compter de la reliure:Suivre ce lien pour plus de détails. Aussi, vous pouvez trouver un exemple complet avec des explications sur la CodeProject.
EDIT:
Autre approche serait de garder votre table en tant que propriété. Dans votre fenêtre de la fenêtre de contexte de données de la vue modèle, puis de définir la liaison à la propriété dans le modèle de vue:
Le modèle de vue:
Dans votre fenêtre (celle qui affiche la grille de données:
De cette façon, votre liaison dans la fenêtre principale XAML saura où chercher pour les données en
myViewModel
.Dans votre XAML, vous n'avez pas besoin d'un nom pour votre réseau à l'aide de cette approche. Mais la liaison a pour spécifier le nom de la source de données:
DataGrid
en xaml (avec le conteneur parent), votre modèle de vue lorsque vous créez un tableau de données et le tableau de données de la propriété, votre point de vue (ce que vous avez décrit comme xaml.cs) lorsque vous configurez unDataContext
.