在objectlistview中按非列分组

时间:2014-11-03 20:23:06

标签: c# grouping objectlistview

我需要显示大约5-6行数据,当我添加数据时,我希望能够对4个不同部分的数据进行排序,而这些数据都不会按任何列值进行分组它只是按SQL值等分组。

你如何有效地使用objectlistview?

使用标准列表视图非常简单:

listView1.Items[0].Group = listView1.Groups[0];

我似乎无法在objectlistview中找到它。

感谢。

添加代码:

    public class AdminHistory
    {
        public string Ordernr { get; set; }
        public string newImei { get; set; }
        public string Imei { get; set; }
        public string Fel { get; set; }
        public string Modell { get; set; }
        public string Garanti { get; set; }
        public string Datum { get; set; }
        public string User { get; set; }
        public string Status { get; set; }

    }

    private void admin_Load(object sender, EventArgs e)
    {
        List<AdminHistory> list = new List<AdminHistory>();

        list.Add(new AdminHistory() { Ordernr = "12345", newImei = "", 
            Imei = "test", Fel = "test", Modell = "abc", 
            Garanti = "ja", Datum = "2014-01-01 18:31", User = "123", Status = "waiting"});

        adminHistory.SetObjects(list);
    }

我的objectlistview有propper aspectnames。

基本上我不想按上述任何一个字段进行分组,我只是希望能够创建一个虚拟组并将大量数据分组到4个单独的组中,然后这些组将显示在listview和用户可以按照他/她的意愿查看它们。

objectlistview的创建者的示例图片:
http://www.codeproject.com/KB/list/ObjectListView/fancy-screenshot2.png

该图像中的分组不是按列分组(我认为至少是),而是一个虚拟组,就像我试图实现一样。

1 个答案:

答案 0 :(得分:1)

  

该图像中的分组不按列分组(我认为至少是),而是一个虚拟组,就像我想要实现一样。

该示例实际上按列方面值进行分组。但它还使用groupColumn.MakeGroupies使用“按分级分组”功能。

据我所知,分组总是绑定到一列。但是,您可以通过一个小的解决方法实现您想要的目标。

  

“要理解的关键部分是所有具有相同”键“的模型对象都放在同一个组中。默认情况下,”键“是由分组列计算的模型对象的方面。

您可以通过安装GroupKeyGetter委托来返回自己的“组密钥”,但此属性绑定到列。但是,您可以使用您选择的“备用”列,为其安装GroupKeyGetter并返回所需的“密钥”。

mySortColumnOfChoice.GroupKeyGetter = delegate(object rowObject) {
    var key = /* create your key here */
    return key;                             
};

然后使用

objectListView1.BuildGroups(mySortColumnOfChoice, SortOrder.None);

使用“自定义”键创建群组。