- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在对一些数据进行分组,而 PropertyGroupDescription 大多数时候都可以正常工作。但是,如果该属性是 DateTime,并且我不想将多个日期分组为一个组(例如每组 30 天之类),我将需要一个新的 GroupDescription。问题是我不知道这个类实际上是如何工作的,也不知道我将如何设计这样一个类。
我希望能够继承 PropertyGroupDescription(而不是基本的抽象类),因为这也将基于一个属性,但在这里我是基于一系列值而不是单个值进行分组 == 1组。
是否有像这样的指南或准备好的类(class)?
最佳答案
有点晚了,但正如您自己所说,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()));
关于wpf - 基于 DateTime 创建自定义 GroupDescription,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6423738/
假设我在 BooksList 中存储了一堆书。每本书都有一个类型,例如:冒险、神秘或科幻。 我可以通过为“流派”属性添加 GroupDescription 来按流派对书籍进行分组。 给定 BooksL
我正在对一些数据进行分组,而 PropertyGroupDescription 大多数时候都可以正常工作。但是,如果该属性是 DateTime,并且我不想将多个日期分组为一个组(例如每组 30 天之类
所以我有一个非常简单的数据网格,其组样式如下:
我有一个 GroupingGrid 控件,它基本上是一个自定义的 DataGrid。我通过让我的 ViewModel 公开一个 ListCollectionView 并使用 C# 代码手动添加告诉网格
正如标题所说,我有一个绑定(bind)到 ListViewCollection 的 WPF DataGrid。数据集很大,但加载速度非常快——这要归功于行的虚拟化。 但是,一旦我添加了一个分组,它就会
我们正在考虑将基于 WPF DataGrid 的应用程序升级到使用 Infragistics xamDataGrid DataGrid 控件的应用程序。 WPF DataGrid 的优点之一是它会查看
精简版 我想在更改选择时将 ListBox 项目滚动到 View 中。 长版 我有一个 ListBox,其 ItemsSource 绑定(bind)到一个 CollectionViewSource 和
我是一名优秀的程序员,十分优秀!