c#我可以添加列表吗<;ChannelTreeItem>;到树视图节点? private void show_info() { 列表结果=新列表(); 尝试 { 结果=QueryUtils.GetChannelTree(TopQuery.GetChannelList().Values,TopQuery.GetClientList().Values); treeview1.nodes.add(结果); } 抓住 { MessageBox.Show(“稍后重试”); } }

c#我可以添加列表吗<;ChannelTreeItem>;到树视图节点? private void show_info() { 列表结果=新列表(); 尝试 { 结果=QueryUtils.GetChannelTree(TopQuery.GetChannelList().Values,TopQuery.GetClientList().Values); treeview1.nodes.add(结果); } 抓住 { MessageBox.Show(“稍后重试”); } },c#,treeview,C#,Treeview,ErrorMsg:无法将ChannelTreeItem转换为字符串 我可以将此列表添加到treeview节点吗?如果查看节点方法的定义。添加(对于treeview),您将看到只能添加TreeNode或string类型的对象: 所以你需要进行转换。使用ToString(),或者创建一个TreeNode对象并将其添加到treeview中 从您的代码: private void show_info() { List<ChannelTreeItem> resu

ErrorMsg:无法将ChannelTreeItem转换为字符串


我可以将此列表添加到treeview节点吗?

如果查看节点方法的定义。添加(对于treeview),您将看到只能添加TreeNode或string类型的对象:

所以你需要进行转换。使用ToString(),或者创建一个TreeNode对象并将其添加到treeview中

从您的代码:

    private void show_info()
    {
        List<ChannelTreeItem> result = new List<ChannelTreeItem>();
        try
        {

            result = QueryUtils.GetChannelTree(TopQuery.GetChannelList().Values,TopQuery.GetClientList().Values);
            treeview1.nodes.add(result);
        }
        catch
        {
            MessageBox.Show("Retry later");
        }
    }
列表结果=新列表();
结果变量的类型为ChannelTreeItems列表。我不清楚您想在树节点中放置什么。您希望每个节点包含ChannelTreeItems列表,还是希望每个节点包含一个ChannelTreeItem

要执行后一种操作,您需要遍历列表(for或foreach循环),然后将每个项字符串添加到一个新节点,然后将其添加到树视图中

我不熟悉“ChannelTreeItem”,也不知道“GetChannelTree”返回的是什么,但是我可以告诉您,“Add:方法通常用于添加1项,当没有合适的加载方法接受给定的对象类型时,它会返回到基,这是您看到的错误消息。“TreeView.Nodes,Add“接受作为基本字符串。该方法不支持提供的“ChannelTreeItem”类型。您需要通过以下方法将“ChannelTreeItem”转换为受支持的对象类型:string/TreeNode等。。
List<ChannelTreeItem> result = new List<ChannelTreeItem>();