获取datagrid行

use*_*625 8 wpf datagrid visibility datagridrowheader

如何获取DataGrid中的行列表?不是绑定的项目,而是 DataGridRows列表.

我需要控制这些行的可见性,并且只能将其控制为a DataGridRow而不是数据对象.

谢谢!

Roh*_*ats 27

您可以使用ItemContainerGenerator获取行.这应该工作 -

for (int i = 0; i < dataGrid.Items.Count; i++)
{
    DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator
                                               .ContainerFromIndex(i);
}
Run Code Online (Sandbox Code Playgroud)

  • 这里需要注意的一点是,当启用虚拟化时(默认情况下),对于未创建的行,您将获得"null".这意味着您将无法在单次运行中遍历所有行,除非您在DataGrid上设置`VirtualizingStackPanel.IsVirtualizing ="False" - 但这可能会导致您的网格性能不佳. (11认同)