Infragistics XamGrid:如何防止列过滤器显示时间?

时间:2017-07-04 14:51:21

标签: filter xamgrid

我们正在使用DateTime列和时间,但需要(excel样式不同元素)列过滤器只显示日期,没有时间。这可能吗?

我在Infragistics上发现了一篇文章,其中介绍了如何添加自定义过滤器,而不是如何更改现有过滤器。

1 个答案:

答案 0 :(得分:0)

从infragistics支持中获取以下代码(感谢Tacho!):

private void XamDataGrid_RecordFilterDropDownOpening(object sender, RecordFilterDropDownOpeningEventArgs e)
{
    if (e.Field.DataType == typeof(DateTime))
    {
        List<FilterDropDownItem> cellValues = e.DropDownItems.Where(i => i.IsCellValue).ToList();
        foreach (FilterDropDownItem item in cellValues)
            e.DropDownItems.Remove(item);


        foreach (FilterDropDownItem item in cellValues)
        {
            item.DisplayText = (item.Value as DateTime?).Value.ToString("yyyy/MM/dd");
            if (!e.DropDownItems.Contains(e.DropDownItems.FirstOrDefault(i => i.DisplayText == item.DisplayText)))
            {
                var newItem = new FilterDropDownItem(new Infragistics.Windows.Controls.ComparisonCondition(
                    Infragistics.Windows.Controls.ComparisonOperator.Contains, item.DisplayText), item.DisplayText);
                e.DropDownItems.Add(newItem);
            }
        }
    }
}