C# Devexpress树列表添加对象仅显示对象名称
我正在尝试将对象添加到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
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);