Wpf 获取数据网格行
如何获取DataGrid中的行列表?不是绑定项,而是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
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>