原創|使用教程|編輯:龔雪|2016-01-11 09:18:24.000|閱讀 867 次
概述:在上一篇文章我們已經介紹了分組,那么本文就在這個基礎上介紹如何自定義分組信息。默認情況下,C1DataGrid總是根據匹配的條件進行分組,有時候需要覆蓋并且提供自己的邏輯。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在上一篇文章我們已經介紹了分組,那么本文就在這個基礎上介紹如何自定義分組信息。默認情況下,C1DataGrid總是根據匹配的條件進行分組,有時候需要覆蓋并且提供自己的邏輯。這個時候,可以使用GroupConverter屬性從IValueConverter繼承。這個grouping 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; } }
對于文字,通過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; } }
通過CanUserGroup屬性,并在運行時設置GroupBy方法。代碼參考:
// group by a column c1DataGrid1.GroupBy(c1DataGrid1.Columns["Received"], DataGridSortDirection.Descending);
有關本文講解的分組,可以參考如下Demo:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網