我试图在模板化的DataGrid中的所选行中找到一个控件。
<DataGridTemplateColumn Header="Local">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Name="chkImport" IsChecked="{Binding IsLocalized}"></CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
我正在尝试以下代码:
var selectedRow = (DataGridRow) gridFileScan.ItemContainerGenerator.ContainerFromItem(gridFileScan.SelectedItem);
CheckBox chkImport = FindVisualChild<CheckBox>(selectedRow);
但chkImport始终为null。任何想法??
答案 0 :(得分:0)
调试时,您应该能够看到该方法递归VisualTree。
您可以使用the Visual Tree Visualizer
查看可视树FindVisualChild的实现可能存在缺陷,或者VisualTree看起来不像您期望的那样。
答案 1 :(得分:0)
找到它。我只需在修改ItemsSource后调用此方法:
gridFileScan.UpdateLayout();