J'utilise le composant DataGrid WPF avec un DataGridTemplateColumn. Le DataGridTemplateColumn.CellEditingTemplate contient un ComboBox avec IsEditable défini sur 'true'. Dans mon gestionnaire d'événements RowEditEnding, je voudrais lire la propriété Text de ce ComboBox - le seul problème est que je ne sais pas comment récupérer l'instance ComboBox dans le gestionnaire d'événements afin d'accéder à la propriété Text.DataGrid: aide pour accéder à un contrôle défini dans un CellEditingTemplate
Pour référence, voici mon DataTemplate:
<!-- ... -->
<my:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox IsEditable="True" ItemsSource="{Binding Source={StaticResource ProductCategories}}" SelectedItem="{Binding Path=Name}" DisplayMemberPath="Name" />
</DataTemplate>
</my:DataGridTemplateColumn.CellEditingTemplate>
<!-- ... -->
Et mon code:
private void productsDataGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
// UH-OH! Where do I find the ComboBox instance?
}
Je sais que je peux arriver à la ligne affectée actuelle à l'aide e.Row ... Peut-être la solution implique quelque chose en utilisant e.Row? J'ai essayé de parcourir l'arborescence visuelle de manière récursive à partir d'e. Descendre en cherchant une instance de ComboBox, mais pas de dés. Je suis presque certain que la solution est simple, cependant, je suis relativement nouveau à WPF en général. Toutes les suggestions seraient grandement appréciées.
Merci!
Avez-vous trouvé une solution? – Shimmy