1

我正在使用 xceeddatagrid 库(http://schemas.xceed.com/wpf/xaml/datagrid)中的 DataGridControl。我要做的是根据类模型中的属性隐藏/折叠数据行。我正在尝试使用数据触发器。我的问题是 DataGrid 将从数据行中删除数据,但不会从行的物理空间中删除。所以它留下了一个空白行。我尝试了一个开箱即用的常规 .net 数据网格,我没有问题。我剥离了所有样式,但仍然有这个问题。

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>
4

1 回答 1

0

查看这个关于可见性枚举的文档页面。您需要的值似乎已折叠:

不要显示元素,也不要在布局中为其保留空间。

我不确定您是否需要“。” 在 DataTrigger 绑定的路径中。我相信每个 DataRow 的 IsTrue 属性都将在没有点的情况下被隐式访问。

除此之外,我看到的主要问题是 DataTrigger 中的同一属性有两个设置器。根据您的描述,DataRow 的 Visibility 似乎设置为 Collapsed,但随后设置为 Hidden,这正是您描述的问题:

不显示元素,但在布局中为元素保留空间。

所以,我相信解决方案是删除冲突的可见性设置器。

于 2019-05-24T16:30:00.857 回答