彩票走势图

C1DataGrid for WPF基础教程:自定义分组信息

原创|使用教程|编辑:龚雪|2016-01-11 09:18:24.000|阅读 794 次

概述:在上一篇文章我们已经介绍了分组,那么本文就在这个基础上介绍如何自定义分组信息。默认情况下,C1DataGrid总是根据匹配的条件进行分组,有时候需要覆盖并且提供自己的逻辑。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

在上一篇文章我们已经介绍了分组,那么本文就在这个基础上介绍如何自定义分组信息。默认情况下,C1DataGrid总是根据匹配的条件进行分组,有时候需要覆盖并且提供自己的逻辑。这个时候,可以使用GroupConverter属性从IValueConverter继承。这个grouping converter将应用到每个数据项,允许控制分组和每组的项目。

为了自定义分组有如下几个步骤:

1.创建converter

将值放到需要的分组中,为需要的列设置GroupConverter属性。比如,创建日期分组。

c1DataGrid1.Columns["Received"].GroupConverter = new MyDateGroupConverter();

public class MyDateGroupConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
DateTime date = (DateTime)value;
if(date.DayOfYear == DateTime.Now.DayOfYear)
{
return "Date: Today";
}
else if (date.DayOfYear == DateTime.Now.DayOfYear - 1)
{
return "Date: Yesterday";
}
else
{
return "Date: Older";
}
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
}

2.为分组行创建UI Converter

对于文字,通过GroupContentConverter属性来设置。代码参考如下:

c1DataGrid1.Columns["Received"].GroupContentConverter = new MyDateGroupContentConverter();

public class MyDateGroupContentConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// just simple string, no conversion needed
return value;
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
}

3.对于特定列的分组

通过CanUserGroup属性,并在运行时设置GroupBy方法。代码参考:

// group by a column
c1DataGrid1.GroupBy(c1DataGrid1.Columns["Received"], DataGridSortDirection.Descending);

有关本文讲解的分组,可以参考如下Demo:

PS: 关于ComponentOne,这些产品你可以关注>>
本文转载自
新年新禧新气象,送礼送福送优惠!优惠详情点击查看>>

标签:WPF用户界面控件ComponentOne

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP