WPF XceedDataGrid использует datatrigger для свертывания / скрытия строк - PullRequest
1 голос
/ 24 мая 2019

Я использую DataGridControl из библиотеки xceeddatagrid (http://schemas.xceed.com/wpf/xaml/datagrid).. Я пытаюсь скрыть / свернуть данные на основе свойства из модели классов. Я пытаюсь использовать источник данных. Моя проблема является то, что DataGrid удалит данные из datarow, но не физическое пространство строки. Таким образом, он оставляет пустую строку. Я попробовал обычную из коробки .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>

1 Ответ

0 голосов
/ 24 мая 2019

Проверьте эту страницу документа о Enum видимости.Казалось бы, нужное вам значение Collapsed:

Не отображать элемент и не резервировать место для него в макете.

Я не уверен, чтовам нужно "."в пути привязки DataTrigger.Я считаю, что к каждому свойству DataRow IsTrue будет обращаться неявно без точки.

Кроме того, основная проблема, которую я вижу, состоит в том, что в DataTrigger есть два установщика для одного свойства.Исходя из вашего описания, может показаться, что видимость DataRow устанавливается на Collapsed, а затем на Hidden, что в точности соответствует тому, что вы описываете как проблему:

Не отображать элемент, но резервироватьпространство для элемента в макете.

Итак, я считаю, что решение состоит в том, чтобы удалить конфликтующий установщик видимости.

...