[英]WPF XceedDataGrid use datatrigger to collapse/Hide rows
我正在使用xceeddatagrid库( http://schemas.xceed.com/wpf/xaml/datagrid )中的DataGridControl。 我想做的是基于类模型的属性隐藏/折叠数据行。 我正在尝试使用数据触发器。 我的问题是,DataGrid将从数据行中删除数据,但不会从行的物理空间中删除数据。 因此,它留下了空白行。 我尝试了常规的开箱即用的.net datagrid,但我没有任何问题。 我剥离了所有样式,但仍然遇到这个问题。
xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid"
<xcdg:DataGridControl x:Name="dgr"
ItemsSource="{Binding Path=.Data}"
AutoCreateColumns="False">
<xcdg:DataGridControl.Resources>
<Style TargetType="{x:Type xcdg:DataRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=.IsTrue}" Value="true">
<Setter Property="Visibility" Value="Collapsed" />
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</xcdg:DataGridControl.Resources>
<xcdg:DataGridControl.Columns>
<xcdg:Column FieldName="IsToday" Title="Today" Width="40" />
<xcdg:Column FieldName="Name" Title="Name" Width="70" />
<xcdg:Column FieldName="Address" Title="Address" Width="40" />
</xcdg:DataGridControl.Columns>
</xcdg:DataGridControl>
查阅此文档页面,了解可见性枚举。 您所需的价值似乎已崩溃:
不要显示元素,也不要在布局中为其保留空间。
我不确定您是否需要使用“。” 在DataTrigger绑定的路径中。 我相信每个DataRow的IsTrue属性都将隐式地访问而不带点。
除此之外,我看到的主要问题是DataTrigger中的同一属性有两个设置器。 根据您的描述,似乎DataRow的“可见性”被设置为“已折叠”,但随后被设置为“隐藏”,这确实符合您所描述的问题:
不显示元素,但在布局中为元素保留空间。
因此,我认为解决方案是删除有冲突的可见性设定器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.