Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Filter Infragistics XamGrid:如何防止列筛选器显示时间?_Filter_Xamgrid - Fatal编程技术网

Filter Infragistics XamGrid:如何防止列筛选器显示时间?

Filter Infragistics XamGrid:如何防止列筛选器显示时间?,filter,xamgrid,Filter,Xamgrid,我们使用带有时间的DateTime列,但需要(excel样式的不同元素)列筛选器仅显示日期,而不显示时间。可能吗 我在Infragistics上找到了一篇文章,介绍了如何添加自定义过滤器,而不是如何更改现有过滤器。从Infragistics支持中截取了以下代码(感谢Tacho!): private void XamDataGrid\u RecordFilterDropDownOpen(对象发送方,RecordFilterDropDownOpeningEventArgs e) { if(e.Fie

我们使用带有时间的DateTime列,但需要(excel样式的不同元素)列筛选器仅显示日期,而不显示时间。可能吗


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

从Infragistics支持中截取了以下代码(感谢Tacho!):

private void XamDataGrid\u RecordFilterDropDownOpen(对象发送方,RecordFilterDropDownOpeningEventArgs e)
{
if(e.Field.DataType==typeof(DateTime))
{
列出cellValues=e.DropDownItems.Where(i=>i.IsCellValue.ToList();
foreach(cellValues中的FilterDropDownItem项)
e、 删除(项目);
foreach(cellValues中的FilterDropDownItem项)
{
item.DisplayText=(item.Value作为DateTime?.Value.ToString(“yyyy/MM/dd”);
如果(!e.DropDownItems.Contains(e.DropDownItems.FirstOrDefault(i=>i.DisplayText==item.DisplayText)))
{
var newItem=new FilterDropDownItem(新建Infragistics.Windows.Controls.ComparisonCondition(
Infragistics.Windows.Controls.ComparisonOperator.Contains、item.DisplayText)、item.DisplayText);
e、 添加(newItem);
}
}
}
}
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);
            }
        }
    }
}