繁体   English   中英

WPF XceedDataGrid使用datatrigger折叠/隐藏行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM