Установить фильтр по умолчанию в C1 DataGrid

У меня есть ComponentOne DataGrid со строкой фильтра сверху. Фильтрация работает нормально. Мне нужно, чтобы фильтр столбца флажка был установлен по умолчанию. Другими словами, когда сетка изначально отображается, фильтр должен быть настроен на отображение только что проверенных (активных) строк.

Есть ключевое слово Filter, но я не могу понять, как его использовать в XAML.

    <c1:C1DataGrid.TopRows>
        <c1:DataGridFilterRow/>
    </c1:C1DataGrid.TopRows>

    <c1:C1DataGrid.Columns>
        <c1:DataGridBoundColumn Header="ID" Binding="{Binding Id}" />
        <c1:DataGridBoundColumn Header="PROJECT/BAU" Binding="{Binding Project}" />
        <c1:DataGridBoundColumn Header="DESCRIPTION" Binding="{Binding Description}" />
        <c1:DataGridCheckBoxColumn Header="ACTIVE" Binding="{Binding IsActive}" />
    </c1:C1DataGrid.Columns>

person anjulis    schedule 13.07.2018    source источник


Ответы (1)


C1DataGrid имеет этот метод FilterBy. Как указано здесь, этот метод принимает столбец (столбец, который вы хотите отфильтровать) и FilterState для применения. Теперь, прежде чем использовать этот метод, вам нужно создать свой собственный DatagridFilterState, установив его FilterInfo.

Что-то вроде следующего должно фильтровать столбец типа флажка, чтобы отображать только отмеченные значения.

 List<DataGridFilterInfo> filterInfoList = new List<DataGridFilterInfo>();
 filterInfoList.Add(new DataGridFilterInfo() { FilterOperation = DataGridFilterOperation.Equal, FilterType = DataGridFilterType.CheckBox, Value = true });
 filterState = new DataGridFilterState();
 filterState.FilterInfo = filterInfoList;

 grid.FilterBy(grid.Columns["checkboxColumn"], filterState);
person Ruchir    schedule 31.07.2018