Ich verwende das WPF DataGrid mit einer DataGridTemplateColumn. Die DataGridTemplateColumn.CellEditingTemplate enthält eine ComboBox, bei der IsEditable auf 'true' gesetzt ist. In meinem RowEditEnding-Ereignishandler möchte ich die Text-Eigenschaft dieser ComboBox lesen - das einzige Problem ist, dass ich nicht weiß, wie ich die ComboBox-Instanz innerhalb des Ereignishandlers abrufen kann, um zur Text-Eigenschaft zu gelangen.DataGrid: Hilfe beim Zugriff auf ein in einem CellEditingTemplate definiertes Steuerelement
Als Referenz hier ist meine Datatemplate:
<!-- ... -->
<my:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox IsEditable="True" ItemsSource="{Binding Source={StaticResource ProductCategories}}" SelectedItem="{Binding Path=Name}" DisplayMemberPath="Name" />
</DataTemplate>
</my:DataGridTemplateColumn.CellEditingTemplate>
<!-- ... -->
Und mein Code:
private void productsDataGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
// UH-OH! Where do I find the ComboBox instance?
}
Ich weiß, dass ich auf die aktuelle betroffen Reihe mit e.Row bekommen kann ... Vielleicht ist die Lösung beinhaltet etwas mit e.Row? Ich habe versucht, den visuellen Baum rekursiv aus e.Row nach einer Instanz von ComboBox suchen, aber keine Würfel. Ich bin fast sicher, dass die Lösung einfach ist, aber ich bin relativ neu bei WPF im Allgemeinen. Alle Vorschläge würden sehr geschätzt werden.
Danke!
Haben Sie eine Lösung gefunden? – Shimmy