2009-03-02 10 views
1

J'ai un DataGrid lié à un DataTable que je veux faire des colonnes personnalisées pour l'utilisation d'un DataGridTemplateColumn, mais je ne suis pas sûr comment faire référence à la valeur dans les cellules du DataTable. Chaque exemple que je vois en ligne lie le DataTable et ne modifie pas les modèles, ou utilise un objet personnalisé et fait référence aux propriétés de l'objet lié. Est-ce que quelqu'un sait comment référencer les valeurs stockées dans le DataTable à partir d'un contrôle dans DataGridTemplateColumn?Comment lier mes contrôles dans un DataGridTemplateColumn WPF à un DataTable?

Merci, Brian

Edit: Je vois maintenant que je peux utiliser le nom de la colonne dans la table de données comme le chemin de liaison. Malheureusement, j'allais essayer d'assigner dynamiquement les modèles aux colonnes, donc je ne connaîtrai pas le nom de la colonne actuelle. Existe-t-il une autre façon de faire ce que je cherche à faire (Assigner un modèle à chaque colonne ou cellule dans un DataGrid par programmation)?

Répondre

0

Je rencontre le même problème et je dois dire que la documentation fournie par Microsoft pour le DataGrid WPF est TOTALEMENT RUBBISH. J'ai parcouru l'Internet à la recherche d'un exemple de la façon de faire cela et trouvé NONE si clairement que le contrôle est inadéquat.

La seule chose qui semble fonctionner sur le Datagrid WPF sont les types primitifs.

J'ai essayé de faire quelque chose de basique en créant un DataTable de mon type personnalisé (par exemple Person) avec quelques propriétés. J'ai essayé toutes les astuces que j'ai lues pour utiliser un DataGridTemplateColumn par programmation lors de la liaison du DataTable au DataGrid WPF et tous les exemples donnent des réponses aux politiciens (évitant ainsi la vraie question).

Une solution déclare le DataTemplate dans le code XAML à la conception, ce qui est inutile car le DataTable est dynamique (donc pas la réponse).

Le plus proche que je suis venu était en créant un ObservableCollection et en liant cela au DataGrid (Encore une fois pas la vraie réponse).

Autre que cela. Rien ne lie quel que soit le nombre de choses que j'ai changé ou essayé. Donc, je me retrouve avec des contrôles vierges, ce qui est assez anodin.