我正在使用带有 DataGridTemplateColumn 的 WPF DataGrid。DataGridTemplateColumn.CellEditingTemplate 包含一个组合框,其中 IsEditable 设置为“true”。在我的 RowEditEnding 事件处理程序中,我想读取该 ComboBox 的 Text 属性 - 唯一的问题是我不知道如何在事件处理程序中检索 ComboBox 实例以获取 Text 属性。
作为参考,这是我的数据模板:
<!-- ... -->
<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 比较陌生。任何建议将不胜感激。
谢谢!