我最近尝试将ObjectListView添加到我的项目而不是普通的ListView。但我无法将Items或SubItems添加到ObjectListView。当我尝试用这段代码填充它时,ObjectListView总是空的:
while (dr.Read())
{
OLVListItem item = new OLVListItem(dr["tn"].ToString());
item.SubItems.Add(dr["title"].ToString());
item.SubItems.Add(tickettime.ToString());
item.SubItems.Add(Convert.ToDateTime(dr["date"]).ToString("dd.MM.yyyy"));
item.SubItems.Add(dr["schlange"].ToString());
item.SubItems.Add(dr["vorname"].ToString() + " " + dr["nachname"].ToString());
Objectlistview.AddObject(item);
}
你可以帮助我或给我一些有用的命令来一般性地添加子项目或项目。
答案 0 :(得分:0)
我在TreeListView上运气更好。
最好有一个对象列表。您对此列表进行了更改,然后使用“SetObjects”将这些更改反映到TreeListView。
如果列表中的每个对象都有一个变量(例如名称),那么这些变量必须反映在“Aspect Name”下的TreeListView列中,以便显示它们。
主列表中的每个对象都应该有自己的列表。这是否要显示子项目。
public Form1()
{
InitializeComponent();
// model is the currently queried object, we return true or false according to the amount of children we have in our Children List
trLstVwResults.CanExpandGetter = model => ((MyClass)model).
Children.Count > 0;
// We return the list of Children that shall be considered Children.
trLstVwResults.ChildrenGetter = delegate(object model)
{
return ((MyClass)model).Children;
};
}
private void btnAdd_Click(object sender, EventArgs e)
{
var MyClasses = new List<MyClass>();
MyClasses.Add(new MyClass("Bob"));
MyClasses.Add(new MyClass("John"));
var mikeClass = new MyClass("Mike");
var joeClass = new MyClass("Joe");
mikeClass.addChildren(joeClass);
MyClasses.Add(mikeClass);
trLstVwResults.SetObjects(MyClasses);
}
该类看起来如下:
public class MyClass
{
public string Name { get; set; }
public List<MyClass> Children { get; set; }
public MyClass(string name)
{
Name = name;
Children = new List<MyClass>();
}
public void addChildren(MyClass tt)
{
Children.Add(tt);
}
}
(不要忘记在属性中设置方面名称)