【问题标题】:Set default filter in C1 DataGrid在 C1 DataGrid 中设置默认过滤器
【发布时间】:2018-07-13 20:06:29
【问题描述】:

我有一个 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>

【问题讨论】:

    标签: c# datagrid componentone


    【解决方案1】:

    C1DataGrid 有这个 FilterBy 方法。正如here 指定的那样,此方法采用列(您希望过滤的列)和要应用的FilterState。现在,在你使用这个方法之前,你需要通过设置它的FilterInfo来创建你自己的DatagridFilterState。

    类似下面的内容应该过滤您的复选框类型列以仅显示选中的值。

     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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 2012-12-28
      • 2013-03-05
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多