Я новичок в c #, и это моя первая программа, в которой я пытаюсь добавить данные в дерево и отобразить их при нажатии кнопки
Это код кнопки, который добавляет данные в виде дерева и отображает их
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;
}
Это xmal код
<TreeView x:Name="TreeView">
` <Button Content="Button" VerticalAlignment="Top"
Width="75"Click="Button_Click_1"/>
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:RunProcesses}"
ItemsSource="{Binding ChildNodes}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name, StringFormat='{}{0} '}"/>
<TextBlock Text="{Binding Path=ID, StringFormat=(ID: {0})}" />
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:Module}" ItemsSource="{Binding ChildNodes}">
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:Thread}" ItemsSource="{Binding ChildNodes}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name, StringFormat='{}{0} '}" />
<TextBlock Text="{Binding Path=ID, StringFormat=(ID: {0})}" />
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:SubThread}" ItemsSource="{Binding ChildNodes}">
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
Этот код компилируется и работает правильно, но когда я нажимаю на кнопку, система выдает исключение
System.invalidoperationexception: 'items collection must be empty before using itemssource.'
Я приложил много усилий для определения причины исключения, но безуспешно
Пожалуйста, направьте меня туда, где я неправ