C# 通过点击c中的按钮在wpf应用程序中添加treeview#

C# 通过点击c中的按钮在wpf应用程序中添加treeview#,c#,wpf,C#,Wpf,我是c#的初学者,这是我第一个尝试在树中添加数据并在单击按钮时显示数据的程序 这是在treeview中添加数据并显示数据的按钮的代码 public MainWindow() { InitializeComponent(); } private void Button_Click_1(object sender, RoutedEventArgs e) { var subModules = new List<ITreeNod

我是c#的初学者,这是我第一个尝试在树中添加数据并在单击按钮时显示数据的程序
这是在treeview中添加数据并显示数据的按钮的代码

   public MainWindow()
    {
        InitializeComponent();
    }
    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        var subModules = new List<ITreeNode>
    {
        new SubModule { Name = "Sub Module 1" }
    };
        var subThreads = new List<ITreeNode>
    {
        new SubThread { Name = "Sub Thread 1" }
    };
        var nodes = new List<ITreeNode>
    {
        new Thread { Name = "Thread ", ChildNodes = subThreads },
        new Module { Name = "Module ", ChildNodes = subModules }
    };
        var runprocesses = new List<RunProcesses>
    {
        new RunProcesses{ Name = "Process1", ChildNodes = nodes }
    };
         TreeView.ItemsSource = RunProcesses;


    }
我花了很大的精力找出异常的原因,但没有成功

请告诉我哪里错了

您需要将
标记移到树视图之外。否则,将初始化TreeView ItemCollection属性,以便ItemCollection有一个Button元素,因此您无法按照错误所述设置ItemsSource

考虑将treeview和按钮安排在某个容器中,而不是将按钮嵌套在treeview中:

<StackPanel>
  <Button/>
  <TreeView/>
</StackPanel>


查看是否有帮助。我已经检查了此链接,在该链接中每个人都添加了一个附加标签以解决问题,但我不知道需要哪个标签:(我注意到的一件事是:
TreeView.ItemsSource=runprocesss;
。我非常确定它应该是
TreeView.ItemsSource=runprocesss;
感谢您指出这一点,但在更改它之后,系统再次抛出相同的异常
System.invalidoperationexception: 'items collection must be empty before using itemssource.'
<StackPanel>
  <Button/>
  <TreeView/>
</StackPanel>