【问题标题】:WPF Group datagrid by year and nested quarters按年份和嵌套季度的 WPF 组数据网格
【发布时间】:2020-06-03 12:36:48
【问题描述】:

我有一个 OrderItems 的集合,它有一个 Date 类型的 OrderDate 属性。现在我使用 Datagrid Groups 按日期对它们进行分组,但这并不是我想要的。我要创建的东西是按 OrderDate 年份创建第一组,然后在这些组中按 Quater 创建一个组。所以它最终会像:

2020
第一季度
Q2
Q3
第四季度

2019
第一季度
Q2
Q3
第四季度

2018
第一季度
Q2
Q3
第四季度
等等……

【问题讨论】:

    标签: wpf xaml datagrid grouping


    【解决方案1】:

    将另一个属性添加到返回季度的 OrderItem 类:

    public class OrderItem
    {
        public DateTime OrderDate { get; set; }
    
        public int OrderYear => OrderDate.Year;
    
        public string Quarter => $"Q{(OrderDate.Month + 2) / 3}";
    }
    

    另一个PropertyGroupDescriptionCollectionView

    view.GroupDescriptions.Add(new PropertyGroupDescription("OrderYear"));
    view.GroupDescriptions.Add(new PropertyGroupDescription("OrderQuarter"));
    

    如果您出于某种原因不想或不能扩展OrderItem 类,现在是时候为您的域类型创建视图模型包装器并绑定到它们了。换句话说,将OrderItem 替换为OrderItemViewModel 并将属性添加到新类中。

    【讨论】:

    • 谢谢你的方法就像一个魅力,有时就是这么简单!我确实将您计算季度的方式更改为DatePart(DateInterval.Quarter, OrderDate)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    相关资源
    最近更新 更多