C# Devexpress树列表添加对象仅显示对象名称

C# Devexpress树列表添加对象仅显示对象名称,c#,vb.net,devexpress,C#,Vb.net,Devexpress,我正在尝试将对象添加到devexpress的树列表中。但遗憾的是,它不会自动填充单元格,而是在每个单元格中显示对象名称 Public Class TempItem Private m_name As String Private m_value As String Public Property Name() As String Get Return m_name End Get Set(value As String) m_name

我正在尝试将对象添加到devexpress的树列表中。但遗憾的是,它不会自动填充单元格,而是在每个单元格中显示对象名称

Public Class TempItem

Private m_name As String
Private m_value As String


Public Property Name() As String
    Get
        Return m_name
    End Get
    Set(value As String)
        m_name = value
    End Set
End Property
Public Property Value() As String
    Get
        Return m_value
    End Get
    Set(value As String)
        m_value = value
    End Set
End Property
末级

Private Function TempItem1() As List(Of TempItem)
    Dim tmpList As New List(Of TempItem)

    tmpList.Add(New TempItem("Feature", "0"))
    tmpList.Add(New TempItem("Feature2", "1"))


    Return tmpList
End Function
我在这一行添加对象:

tlEditor.Nodes.Add(TempItem1.ToArray)
我的树列表中有两列。对于第一列,我将FieldName设置为Name,第二列,我将FieldName设置为Value,希望树列表显示TempItem类中属性的值。在这种情况下,树列表应显示:

特征| 0 特点2 | 1

而是在每个单元格中显示WindowsApplication1.TempItem。像

WindowsApplication1.TempItem | WindowsApplication1.TempItem WindowsApplication1.TempItem | WindowsApplication1.TempItem


我做错了什么?

您的列表中包含了TempItem类的新实例。我会使用一个字符串数组来代替它。您可以为此修改您的类,或者只设置一个列表,如下例所示(C#):

然后只需使用参数调用CreateList:

CreateList(tmplist, treeView1);
    public void CreateList(List<string[]> ars, TreeView tv)
    {
        foreach (var array in ars)
        {
            AddItems(array, 0, tv.Nodes);
        }
    }

    void AddItems(string[] array, int index, TreeNodeCollection nodes)
    {
        if (index < array.Length)
        {
            var nextNode = AddValue(array[index], nodes);
            AddItems(array, index + 1, nextNode.Nodes);
        }
    }

    TreeNode AddValue(string value, TreeNodeCollection nodes)
    {
        var index = nodes.IndexOfKey(value);
        if (index == -1)
        {
            var newNode = new TreeNode(value) { Name = value };
            nodes.Add(newNode);
            return newNode;
        }
        return nodes[index];
    }
CreateList(tmplist, treeView1);