基于 DateTime 创建自定义 GroupDescription

2024-01-09

我正在对一些数据进行分组,PropertyGroupDescription 在大多数情况下都工作正常。但是,如果该属性是 DateTime 并且我不想将多个日期分组为一组(例如每组 30 天或其他),我将需要一个新的 GroupDescription。问题是我不知道这个类实际上是如何工作的以及我将如何设计这样一个类。

我希望能够继承 PropertyGroupDescription (而不是基本的抽象类),因为这也将基于一个属性,但在这里我根据一系列值而不是单个值 == 1 组进行分组。

有类似这样的指南甚至现成的课程吗?


有点晚了,但正如你自己所说IValueConverter可以用于此 - 这是我曾经使用过的一个简单转换器,它将按友好的相对日期字符串进行分组:

public class RelativeDateValueConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var v = value as DateTime?;
        if(v == null) {
            return value;
        }

        return Convert(v.Value);
    }

    public static string Convert(DateTime v)
    {
        var d = v.Date;
        var today = DateTime.Today;
        var diff = today - d;
        if(diff.Days == 0) {
            return "Today";
        }

        if(diff.Days == 1) {
            return "Yesterday";
        }

        if(diff.Days < 7) {
            return d.DayOfWeek.ToString();
        }

        if(diff.Days < 14) {
            return "Last week";
        }

        if(d.Year == today.Year && d.Month == today.Month) {
            return "This month";
        }

        var lastMonth = today.AddMonths(-1);
        if(d.Year == lastMonth.Year && d.Month == lastMonth.Month) {
            return "Last month";
        }

        if(d.Year == today.Year) {
            return "This year";
        }

        return d.Year.ToString(culture);
    }

    public static int Compare(DateTime a, DateTime b)
    {
        return Convert(a) == Convert(b) ? 0 : a.CompareTo(b);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

然后你可以像这样使用它:

view.GroupDescriptions.Add(
    new PropertyGroupDescription("Property", 
        new RelativeDateValueConverter()));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于 DateTime 创建自定义 GroupDescription 的相关文章

  • 为基于架构的 XML 文件创建 WPF 编辑器

    这是场景 我们的服务器产品之一使用大型 XML 配置文件 该文件的布局相当好 并且针对 XSD 文件进行了验证 现在是时候构建一个配置 GUI 来维护这个文件了 我想深入研究 WPF 来完成它 我可以为每个配置部分布置一个单独的表单 每次向
  • 嵌套控件结构 - 使用 XAML 还是 C#?

    我想创建一个由相当多的元素组成的结构 它的基本布局如下
  • 如何让 MSIX 应用安装程序在每次生成/发布期间输出正确的设置?

    问题 如何获取 MSIXappinstaller在每次构建 发布期间输出正确的设置 Context 这是一个后续问题启用侧面加载后 为什么 MSIX 不会在每次应用程序运行时自动检查更新 https stackoverflow com q
  • 需要帮助处理 Application.xaml 文件中的 DataTemplate 事件

    我的应用程序中有一个包含几个按钮的数据模板 我希望这些按钮的偶数处理程序在当前页面 我在许多页面中使用此模板 而不是在 Application xaml vb cs 文件中触发 因为我希望在每个页面上执行不同的操作 我希望我说清楚了 您可以
  • Drupal Views 如何过滤与日期范围重叠的项目

    在 Drupal 中 我使用 CCK 将日期时间字段添加到我的自定义数据类型中 它插入开始日期和结束日期字段 这就是我想要的 现在 我希望视图过滤并仅显示日期范围 开始日期和结束日期 与今天日期重叠的项目 关于如何在视图上设置它有什么想法吗
  • Python,Bokeh:如何更改日期时间轴的范围

    我想使用按钮设置日期时间轴的范围 然而 该命令 f x range Range1d start start date end end date 不起作用 单击按钮时没有任何反应 无论是在运行 Bokeh 服务器的终端窗口中 还是在 Chro
  • WPF:在 DependencyProperty.UnsetValue 上触发

    在回答中这个问题 https stackoverflow com questions 2596847 wpf applying a trigger on binding failure作出以下声明 理论上 可能 触发 x Static De
  • 何时引发 Window.SourceInitialized 事件

    我能保证Window SourceInitialized事件总是会在Window Loaded事件 我需要HwndSource在我的中进一步处理的对象Window Loaded 事件处理程序我不确定到那时这是否总是可用 以下是您可以预期的事
  • 在代码中而不是 XAML 中呈现 UserControl

    我想用RenderTargetBitmap将 UserControl 呈现为位图 而无需为其编写 XAML 当我这样做时 我得到一张空白图像 我是否错过了关键的一步 ValTool Controls VideoFisheyeOverlayC
  • PHP DateTime::修改加减月份

    我一直在与DateTime class http www php net manual en class datetime php最近在添加月份时遇到了我认为是一个错误 经过一番研究后 看来这不是一个错误 而是按预期工作 根据查到的文档he
  • 如何在 C# 中将 Wpf BitmapSource 转换为 byte[] [重复]

    这个问题在这里已经有答案了 可能的重复 WPF 图像到字节 https stackoverflow com questions 553611 wpf image to byte 相对于此 https stackoverflow com qu
  • 带有复选框的 WPF ListBox:在选中之前选择复选框

    Problem 我有一个列表框 其中列表框是复选框 第一次单击时 复选框将被选中并选中 第二次单击时 仅设置复选框 人们可以使用箭头键重新选择不同的复选框 我的目标是 首先选择复选框 然后再检查 再次单击它 从而消除对箭头键的需要 Goal
  • 如何在 WPF 中从原始帧渲染视频?

    我有一个特殊的摄像机 使用 GigEVision 协议 我使用提供的库进行控制 我可以订阅帧接收事件 然后通过 IntPtr 访问帧数据 在我的旧 WinForms 应用程序中 我可以通过从数据创建 Bitmap 对象并将其设置为 Pict
  • 默认转换器何时启动?

    使用以下代码 虽然 Text 属性绑定到 DateTime 源属性 但我注意到 WPF 似乎会自动将文本转换为 DateTime 而无需我编写 ValueConverter 有人可以解释一下这是如何完成的吗
  • DateTime::修改和夏令时切换

    Using 日期时间 修改 http php net manual en datetime modify php在 DST 边界上添加一个小时会导致它跳过一个小时 e g d new DateTime 2015 11 01 12 00 00
  • WPF:当 FontStyle 为 Oblique 时,剪切文本块中最后一个字母的部分

    我有一个简单的 XAML 示例
  • wpf 的 prism 与 mvvm light

    我们正在启动一个带有 MVVM 的 WPF 项目 并且必须决定使用 PRISM 还是 MVVM Light 我对这两个框架都是新手 我已经阅读了一些帖子 但仍然有一些问题 有人可以阐明以下几个方面吗 两个框架 性能 无论出于何种原因 其中一
  • Django 查询:“datetime + delta”作为表达式

    好吧 我的问题如下 假设我有下一个模型 这是一个简单的情况 class Period models Model name CharField field specs here start date DateTimeField field s
  • Android计算两个日期之间的天数

    我编写了以下代码来查找两个日期之间的天数 startDateValue new Date startDate endDateValue new Date endDate long diff endDateValue getTime star
  • 使用 WF 的多线程应用程序的错误处理模式?

    我正在写一个又长又详细的问题 但只是放弃了它 转而选择一个更简单的问题 但我在这里找不到答案 应用程序简要说明 我有一个 WPF 应用程序 它生成多个线程 每个线程执行自己的 WF 处理线程和 WF 中的错误 允许用户从 GUI 端进行交互

随机推荐

  • 表单提交后验证重置

    我有带有复选框的表单 我希望用户至少选择其中之一 一切正常 但重置表单后我无法隐藏验证消息 这种情况在docs https logaretm github io vee validate guide forms html programma
  • 多个应用程序可以访问 SQLite 数据库吗?

    我遇到了一些数据库锁 SQLite BUSY 麻烦 我担心 SQLite 不适合我 基本上 我的设置是一个 cronjob 它定期调用一些不引人注目的 Java 功能和 项目中的新功能 通过一个名为 Jetty Jackson Hibern
  • Boost.Python 模块中未定义的符号

    我正在尝试使用 Boost Python 为模板库的某个实例构建一个小型 Python 扩展 该库广泛使用 CGAL 库 它与 CMake 集成得相当好 因此我将其用于我的项目 这是我的模块的代码 python export cpp inc
  • R partykit::ctree 边缘上的偏移标签

    我正在与ctree我的数据集有一个创建节点的协变量 该协变量有足够的因子 并且它们的名称足够长 以至于它们在节点创建的边中相互重叠 我想找到一种方法来阻止这种重叠 我检查了其他问题 发现一个answer https stackoverflo
  • 将 Bootstrap 导航栏转换为 WordPress 菜单

    我知道网上有很多关于此的主题 但我发现它们非常复杂 基本上我想将 Bootstrap 导航菜单转换为 WordPress 菜单 假设我有默认的 Bootstrap 导航栏
  • Java 音频流(mp3spi lib),UnsupportedAudioFileException

    我看到了多个关于流 MP3 流 如 Icecast 的 Stack Overflow 问题 他们都说使用 MP3SPI 库 我就是这样 MP3SPI 用于允许支持audio mpeg哑剧类型 这就是我的 Icecast 流 我的类路径中正确
  • 如何使用后缀到上标格式化当前日期?

    我正在使用SimpleDateFormatter public static final DateFormat DATE FORMAT FULL FULL SPACES new SimpleDateFormat dd MMMM yyyy L
  • 以编程方式导航到 SwiftUI 中的新视图

    描述性示例 登录屏幕 用户点击 登录 按钮 执行请求 UI 显示等待指示器 然后在成功响应后我想自动将用户导航到下一个屏幕 如何在 SwiftUI 中实现这种自动转换 成功登录后 您可以将下一个视图替换为您的登录视图 例如 struct L
  • 在焦点元素上按下转义键时不会引发按键事件

    I want to know when the Esc key is pressed on an input element On Chrome 47 0 2526 106 m the Esc key removes the focus b
  • 将 Windows Phone 8 SDK 添加到 Visual Studio 2012

    我的互联网连接非常糟糕 并且我有 Windows Phone 8 SDK 文件 但没有安装文件 有没有办法将 Windows 8 SDK 添加到 Visual Studio 而无需下载安装文件 不明白你的意思 您需要安装现有的 Visual
  • VueJS - 单击时交换组件

    在我的应用程序中 我有很多按钮 当我按下按钮时 我想加载一个模板 替换所选按钮 模板 Vue component component 1 Vue component component 2 Buttons div div
  • 哪些浏览器支持 Xpath 2.0?

    我最近一直在使用 XPath 并且一直在搜索有关哪些浏览器支持 XPath 2 0 的信息 但运气不佳 我能找到的最好的是查询技术对照表 http en wikipedia org wiki Comparison of layout eng
  • 我可以同时使用 DataContract 和 Serialized 吗?

    我正在从事 WCF 服务 我的所有类都已使用 Serializable 属性进行序列化 但由于 k BackingField 属性命名问题 我使用了 DataContract 和 DataMember 属性 所以我可以同时使用这两个属性 如
  • C# 列表和枚举器的属性

    我有以下问题 我有一个列表并将字符串项目添加到该列表中 然后我从列表中创建一个枚举器 当我用循环遍历列表时MoveNext 当我直接访问枚举器时 它会起作用 当我使用枚举器属性访问枚举器时 它不起作用 这MoveNext 命令不会增加索引
  • 将 OpenCV 与 Django 结合使用

    我想在我的 Django 应用程序中使用 OpenCV 由于 OpenCV 是一个库 我认为我们可以像任何其他库一样使用它 当我尝试使用导入它时import cv2在 Django 的视图中 它工作正常 但是当我尝试在 Django 视图中
  • 页面顶部固定浮动 div 中的 Bootstrap 警报

    我有一个使用 Bootstrap 的 Web 应用程序 2 3 2 公司政策 如果不对多个 Web 应用程序进行大量测试 我们就无法升级到 3 0 我们在此应用程序中有几个长页面需要验证表单和表格 然而 由于实用和美观的原因 我们需要在页面
  • 为什么 stripe Checkout 中没有帐单地址

    我正在使用 Stripe Checkout 进行信用卡收费 但我在弹出窗口中没有看到帐单地址 为什么他们不需要帐单地址 为什么 当我准备使用信用卡付款时 我访问的任何其他网站都会要求提供帐单地址 Stripe Checkout 中已弃用帐单
  • 以字符串形式访问对象属性并设置其值

    我有一个实例Account班级 每个帐户对象都有一个所有者 引用等 我访问帐户属性的一种方法是通过访问器 例如 account Reference 但我希望能够使用动态字符串选择器访问它 例如 account PropertyName 就像
  • 读取某些元素名称中包含“-”的 XML 提要

    我正在尝试读取元素名称中包含 的 xml feed 可以在此处找到源 我是 php 新手 所以我可能会忽略一些基本的东西 我正在使用 SimpleXML 来读取提要 这是我用来解决我的问题的一些基本代码 我阅读了预测和最低温度 没有任何问题
  • 基于 DateTime 创建自定义 GroupDescription

    我正在对一些数据进行分组 PropertyGroupDescription 在大多数情况下都工作正常 但是 如果该属性是 DateTime 并且我不想将多个日期分组为一组 例如每组 30 天或其他 我将需要一个新的 GroupDescrip