我需要显示大约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
该图像中的分组不是按列分组(我认为至少是),而是一个虚拟组,就像我试图实现一样。
答案 0 :(得分:1)
该图像中的分组不按列分组(我认为至少是),而是一个虚拟组,就像我想要实现一样。
该示例实际上按列方面值进行分组。但它还使用groupColumn.MakeGroupies
使用“按分级分组”功能。
据我所知,分组总是绑定到一列。但是,您可以通过一个小的解决方法实现您想要的目标。
“要理解的关键部分是所有具有相同”键“的模型对象都放在同一个组中。默认情况下,”键“是由分组列计算的模型对象的方面。
您可以通过安装GroupKeyGetter委托来返回自己的“组密钥”,但此属性绑定到列。但是,您可以使用您选择的“备用”列,为其安装GroupKeyGetter
并返回所需的“密钥”。
mySortColumnOfChoice.GroupKeyGetter = delegate(object rowObject) {
var key = /* create your key here */
return key;
};
然后使用
objectListView1.BuildGroups(mySortColumnOfChoice, SortOrder.None);
使用“自定义”键创建群组。