12
votes

Comment définir la DataSource d'un DataGrid dans WPF?

Je dois définir une table d'une base de données pour être la source de données d'un gridgrid dans WPF. Sous Windows Formes, la propriété est appelée DataSource mais dans WPF, aucune propriété de ce type n'existe, comment puis-je le faire?


3 commentaires

Vous voulez dire "sous Windows Forms", pas "en C #" ... C # est une langue, pas un cadre d'interface utilisateur


J'ai assumé aussi bien et je suis allé à l'éditer car c # n'a aucun sens.


Oui, je veux dire des formulaires Windows. Merci pour la correction


4 Réponses :


16
votes

Vous pouvez utiliser le itemsSource propriété: xxx

Si vous préférez utiliser le code-derrière plutôt qu'une liaison, donnez simplement un nom au listview et définissez Le itemsSource Propriété dans le code: xxx

Vous pouvez également utiliser la propriété itemsSource avec d'autres commandes de liste ( DataGrid , listbox , Combobox , etc.), car il est défini dans la classe itemsControl Classe de base.


Edit: Si la source de données est un dataTable , vous ne pouvez pas l'affecter directement à itemsSource car il n'applique pas ienumerable , mais vous pouvez le faire à travers une liaison: xxx


5 commentaires

Mais "YourData" Comment vous dites est un objet? Parce que si je le fais comme dans des formulaires Windows, avec un jeu de données, cela ne fonctionne pas.


Ah, oui, datatable est un cas spécial ... Voir la modification de ma réponse


Mais j'ai un autre problème, si je veux lier des données sur DataGrid, mais si je dispose déjà de colonnes définies dans la DataGrid, comment puis-je mettre les données de liaison dans les colonnes existantes?


J'ai besoin d'exemple pour définir quelque chose comme une source de données d'un DataGrid (et j'ai déjà atteint cela), mais imaginez que j'ai déjà des colonnes (en tant que textebox ou / et combobox) dans le Datagramrid. Je peux mettre les données avec succès dans les cellules des colonnes comme zone de texte en définissant la propriété "liaison", mais pour mettre les données dans les colonnes sous forme de comboquox, je ne comprends pas comment je peux le faire.


Vous pouvez utiliser un datagridcomboboxcolumn. Je ne peux pas vraiment vous donner une explication détaillée dans les commentaires, jetez un coup d'œil à l'exemple dans Documentation



2
votes

Le GridView est une vue et non un contrôle autonome autant que je sache, vous l'utiliseriez normalement comme une vue d'un listview . Dans WPF, la propriété de la population de données est appelée itemsSource , vous souhaitez probablement utiliser un listview ou datagramrid pour afficher vos données de cette façon. < / p>


0 commentaires

11
votes

Ceci est simple un exemple:

partie xaml : xxx

C # partie :

... [code pour lire et remplir votre table] ... xxx

et maintenant votre datagramrid sera rempli de votre fichier de données


0 commentaires

0
votes

Vous pouvez utiliser ci-dessous les deux manières de lier le jeu de données sur DataGrid dans WPF.

 datagrid.ItemSource = mydt.DefaultView();

 datagrid.DataContext = mydt.DefaultView();


0 commentaires