Я использую DataGrid WPF с DataGridTemplateColumn. DataGridTemplateColumn.CellEditingTemplate содержит ComboBox с IsEditable, установленным как 'true'. В обработчике событий RowEditEnding я хотел бы прочитать свойство Text этого ComboBox - единственная проблема в том, что я не знаю, как получить экземпляр ComboBox в обработчике событий, чтобы добраться до свойства Text.DataGrid: Справка по доступу к элементу управления, определенному в CellEditingTemplate
Для справки, вот мой DataTemplate:
<!-- ... -->
<my:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox IsEditable="True" ItemsSource="{Binding Source={StaticResource ProductCategories}}" SelectedItem="{Binding Path=Name}" DisplayMemberPath="Name" />
</DataTemplate>
</my:DataGridTemplateColumn.CellEditingTemplate>
<!-- ... -->
И мой код:
private void productsDataGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
// UH-OH! Where do I find the ComboBox instance?
}
Я знаю, что я могу получить к текущей затрагиваемой строке, используя e.Row ... Может быть, решение что-то использует e.Row? Я пробовал рекурсивно просматривать визуальное дерево с e.Row вниз, ища экземпляр ComboBox, но без кубиков. Я почти уверен, что решение прост, однако, я релятививно новичок в WPF в целом. Любые предложения были бы высоко оценены.
Спасибо!
Вы нашли решение? – Shimmy