2009-03-24 6 views
0

J'utilise le composant DataGrid WPF et j'aimerais savoir s'il est possible d'accéder par programme aux RowDetails de DataGridRow. Par exemple, lorsque l'utilisateur sélectionne la ligne, je voudrais récupérer des données de quelque part (disons une base de données) et les afficher dans RowDetails.WPF DataGrid - Définition de RowDetails par programme

Tous les exemples que j'ai vus ont tendance à afficher simplement des données liées supplémentaires qui ne sont pas incluses dans les colonnes de la ligne.

Répondre

1

Vous pouvez afficher des données supplémentaires mais le charger paresseux sur SelectionChanged.

Il n'est généralement pas facile de travailler directement avec les contrôles WPF, ils ne sont pas vraiment destinés à être utilisés sans un modèle de base de données de backing.

+0

J'ai complètement raté le fait que l'événement DataGrid.LoadingRowDetails vous remet la section des détails de la ligne en tant qu'élément de structure (dans DataGridRowDetailsEventArgs.DetailsElement). Cela m'a permis d'ajouter du code pour faire ce dont j'avais besoin. –

0

Si vous avez toutes les données dans la liste des objets (ou quelque chose de similaire) alors vous pouvez faire toutes sortes de choses amusantes. J'utilise une base de données WPF de cette manière, et quand un utilisateur sélectionne une ligne, je pense remplir un contrôle d'éditeur au-dessus de la grille avec l'élément de ligne plus des détails supplémentaires.

Cela dit, il n'y a rien qui vous empêche d'ajouter des informations supplémentaires dans la grille qui est normalement caché et un déclencheur sur la sélection de la ligne pour afficher les données supplémentaires

0

vous pouvez utiliser le code suivant

DataRowView rangée = (DataRowView) MyDataGrid.SelectedItem; chaîne strName = row.Row ["Nom"]. ToString(); // où "Name" est le nom de la colonne

Questions connexes