Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 获取数据网格行_Wpf_Datagrid_Visibility_Datagridrowheader - Fatal编程技术网

Wpf 获取数据网格行

Wpf 获取数据网格行,wpf,datagrid,visibility,datagridrowheader,Wpf,Datagrid,Visibility,Datagridrowheader,如何获取DataGrid中的行列表?不是绑定项,而是 DataGridRowslist 我需要控制这些行的可见性,并且只能将其作为DataGridRow控制,而不能作为数据对象控制 谢谢 您可以使用获取行。这应该行得通- for (int i = 0; i < dataGrid.Items.Count; i++) { DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator

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

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

谢谢

您可以使用获取行。这应该行得通-

for (int i = 0; i < dataGrid.Items.Count; i++)
{
    DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator
                                               .ContainerFromIndex(i);
}
for(int i=0;i
我建议为
DataGridRow
定义一个样式,该样式的可见性将绑定到是否应显示该样式。正如我在@RV1987的回答中提到的,仅仅遍历行是不够的

<DataGrid>
    <DataGrid.Resources>
        <Style TargetType="DataGridRow">
            <Setter Property="Visibility" Value="{Binding ...}" />
        </Style>
    </DataGrid.Resources>
</DataGrid>

这里需要注意的一点是,当启用虚拟化时(默认情况下),对于未创建的行,您将获得
null
。这意味着您将无法在一次运行中遍历所有行,除非您在DataGrid上设置了
virtualizengstackpanel.isvirtualization=“False”
,但这可能会导致您的网格性能不佳。您好,我如何在UWP中做到这一点?我得到了值null异常,如何修复此错误?绑定什么?这不是uielemnt…可以更具体一点吗?不起作用抱歉。。。我添加此属性:我尝试此:并将此属性添加到对象:公共可见性应显示{get;set;}有什么问题吗?谢谢@user196625您是否确实为每个项目设置了属性值?是的。我通过单击按钮进行设置。可能不是立即设置的?有一个绑定,我检查了它,但在运行时,当我更改它时,什么也没有发生。如果在绑定控件时没有设置它,您还必须为对象实现
INotifyPropertyChanged
<DataGrid>
    <DataGrid.Resources>
        <BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter" />

        <Style TargetType="DataGridRow">
            <Setter Property="Visibility" Value="{Binding Path=ShouldBeDisplayed, Converter={StaticResource booleanToVisibilityConverter}}" />
        </Style>
    </DataGrid.Resources>
</DataGrid>