微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

日期时间列的时间组件上的 Dataview 自定义过滤器

如何解决日期时间列的时间组件上的 Dataview 自定义过滤器

我有 2 列的数据网格视图。

| ID | DateCol             |
| 5  | 2021-02-12 03:05:01 |
| 4  | 2021-02-15 02:05:01 |
| 3  | 2021-02-15 05:05:01 |
| 2  | 2021-02-13 05:05:01 |
| 1  | 2021-02-12 05:05:01 |

关于将自定义过滤器应用于集合视图:

BindingListCollectionView collectionView = CollectionViewSource.Getdefaultview(ItemsSource);
collectionview.CustomFilter = $"CONVERT(DateCol,'System.String') >= #05:00:00#";

我只得到一个结果:

   | 3  | 2021-02-15 05:05:01 |

好像是用今天的 DateTime,也就是 2 月 15 日。如何仅根据时间进行过滤?

预期输出是所有 3 个项目的时间分量大于 0500。

    | 3  | 2021-02-15 05:05:01 |
    | 2  | 2021-02-13 05:05:01 |
    | 1  | 2021-02-12 05:05:01 |

谢谢

解决方法

this.defaultView.Filter =
            w =>
            {
                var dateTimeColumn = w as DataTimeColumn;
                return dateTimeColumn?.DateTimeCol.Hour > 5;
            };

        this.defaultView.Refresh();

当您将 ICollectionView 用作 DataGrid 的 ItemsSource 时,您可以使用上述代码段实现过滤。

,

试试这个:

BindingListCollectionView collectionView = CollectionViewSource.GetDefaultView(ItemsSource) as BindingListCollectionView;
collectionView.CustomFilter = $"SUBSTRING(CONVERT(DateCol,'System.String'),11,8) >= #05:00:00#";

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?