Как мне пройти по всем нефильтрованным строкам в XamDataGrid? - PullRequest
0 голосов
/ 04 марта 2019

У меня есть XamDataGrid с разрешенной фильтрацией записей.Первое поле - это флажок «Выбрано», а остальные - только данные от объектов, которые я отображаю в сетке.С точки зрения кода это выглядит примерно так:

<igWPF:XamDataGrid x:Name="xamDataGrid" 
                   DataSource="{Binding SomeDataSourceInTheViewModels}">
    <!-- XamDataGrid Settings -->
    <igWPF:XamDataGrid.FieldLayoutSettings>
        <igWPF:FieldLayoutSettings FilterAction="Hide"
                                   FilterUIType="LabelIcons"/>
    </igWPF:XamDataGrid.FieldLayoutSettings>
    <igWPF:XamDataGrid.FieldSettings>
        <igWPF:FieldSettings ...
                             AllowRecordFiltering="True"
                             FilterOperatorDefaultValue="Equals"
                             FilterLabelIconDropDownType="MultiSelectExcelStyle"
                            .../>
    </igWPF:XamDataGrid.FieldSettings>

    <!-- XamDataGrid Field layout -->
    <igWPF:XamDataGrid.FieldLayouts>
        <igWPF:FieldLayout>
            <igWPF:Field Label="Selected" Name="Selected" Width="Auto">

                <!-- Select/Unselect all button -->
                <igWPF:Field.Settings>
                    <igWPF:FieldSettings AllowEdit="True">
                        <igWPF:FieldSettings.LabelPresenterStyle>
                            <Style TargetType="{x:Type igWPF:LabelPresenter}" BasedOn="{StaticResource {x:Type igWPF:LabelPresenter}}">
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="{x:Type igWPF:LabelPresenter}">
                                            <!-- The Select all checkbox -->
                                            <CheckBox /> 
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </igWPF:FieldSettings.LabelPresenterStyle>
                    </igWPF:FieldSettings>
                </igWPF:Field.Settings>
            </igWPF:Field>

            <!-- The rest of the fields -->
            <igWPF:Field Label="SomeIntValue" Name="SomeIntValue" Width="Auto"/>
            <igWPF:Field Label="SomeBoolValue" Name="SomeBoolValue" Width="Auto" />
            <igWPF:Field Label="SomeStringValue" Name="SomeStringValue" Width="Auto" />
        </igWPF:FieldLayout>
    </igWPF:XamDataGrid.FieldLayouts>
</igWPF:XamDataGrid>

Моя конечная цель - установить флажок в верхней части таблицы данных над столбцом Selected, где я могу щелкнуть и выбрать все нефильтрованные строки.,Я открыт для новых идей о том, как реализовать это, но мой вопрос: как я могу перебрать все нефильтрованные строки в программном коде или в ViewModel?

Я знаю, что есть IsFilteredOut"собственность где-то, но не может найти ее в xamDataGrid

1 Ответ

0 голосов
/ 04 марта 2019

Метод GetFilteredOutDataRecords () RecordManager возвращает все записи данных, которые не проходят условия фильтрации записей:

foreach(var rec in xamDataGrid.RecordManager.GetFilteredOutDataRecords())
{
  // TODO: ...
}

Надеюсь, это поможет.

...