0

可能重复:
从数据网格中获取复选框的值?C#

我试图在模板化 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 始终为空。有任何想法吗 ??

4

2 回答 2

0

找到了。我只需要在修改 ItemsSource 后调用这个方法:

  gridFileScan.UpdateLayout();
于 2012-05-27T03:46:28.910 回答
0

当您调试时,您应该能够看到该方法递归 VisualTree。

您可以使用Visual Tree Visualizer查看 Visual Tree

FindVisualChild 的实现可能有缺陷,或者 VisualTree 看起来不像您期望的那样。

于 2012-05-25T05:29:00.157 回答