【问题标题】:Grouping by non-column in objectlistview在objectlistview中按非列分组
【发布时间】:2014-11-03 20:23:05
【问题描述】:

我有大约 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个单独的组,然后这些组将显示在列表视图中并用户可以按照自己的意愿查看它们。

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

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

【问题讨论】:

  • 请贴出创建项目的代码

标签: c# grouping objectlistview


【解决方案1】:

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

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

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

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

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

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

然后使用

objectListView1.BuildGroups(mySortColumnOfChoice, SortOrder.None);

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

【讨论】:

  • 这很有意义!实际上,我通过制作一个隐藏的列并按此分组,使其按照我想要的方式工作,基本上与您的建议相同。非常感谢:)
  • @makkesk8:如果您必须在其他列上保留标准排序,则使用隐藏列确实是个好主意 :)
猜你喜欢
  • 2015-12-23
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多