1

我最近尝试将 ObjectListView 添加到我的项目中,而不是普通的 ListView。但我无法将项目或子项目添加到 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);
            }

你能帮我或给我一些有用的命令来添加子项目或项目吗?

4

1 回答 1

0

我对 TreeListView 有更好的运气。

最好有一个对象列表。您对此列表进行更改,然后使用“SetObjects”将这些更改反映到 TreeListView。

如果列表中的每个对象都有一个变量(例如名称),则这些变量必须反映在“方面名称”下的 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);
    }
}

(不要忘记在属性中设置方面名称)

于 2016-06-13T12:39:40.657 回答