繁体   English   中英

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

[英]Dataview custom filter on time component of datetime column

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

似乎今天是 2 月 15 日的 DateTime。如何仅根据时间进行过滤?

预期的 output 是所有 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#";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM