1

晚上好。我开始研究技术 - c# 中的 wpf 现在我停在这部分 - 使用树视图我想在我的任务中的树视图中添加一个新节点。

我在这个表单上有一个表单和按钮:

...
<Button Name="btn1" Click="ShowForWriteAdrBookName" Content="TestBtn"/>
...

当您在我的表单上运行程序时,加载了具有树视图的 UserControl:

...
<TreeView Name="treeView1"></TreeView>
...

当我按下

...
<Grid>
        <Label Name="Label1" Content="Имя адресной книги:" Margin="0,20,0,0"></Label>
        <TextBox Name="TextBox1" Width="200" Height="30" Margin="90,-40,0,0"></TextBox>
        <Button Content="Ок" Width="80" Height="30" Margin="0,50,0,0" Click="GetAdrBookName"></Button>
        <Button Content="Отмена" Width="80" Height="30" Margin="200,50,0,0" Click="MyExit"></Button>
</Grid>
...

在 TextBox 中输入文本后,单击“确定”。函数调用:

...
public void GetAdrBookName(object sender, RoutedEventArgs e) 
        {
            if (String.Compare(TextBox1.Text.ToString(), "") != 0)
            {
                adrName = TextBox1.Text.ToString().Trim();
                this.Close();
                CreateAdrBook(adrName);
            }
            else 
            {
                ...
            }
        }
...

在这个函数中,我从文本框中读取信息。然后调用另一个函数:

...
public void CreateAdrBook(string adrNameFromTextBox1)
        {
            mylist.Add(adrNameFromTextBox1);
            int s = mylist.Count;
            TreeView();
    }
...

在这个函数中,我将从我的文本框中获取信息添加到我的集合中:

...
ObservableCollection<string> mylist = new ObservableCollection<string>() 
        { 
        "A",
        "B",
        "C"
        };
...

在我的集合中添加更多信息后,我将此信息添加到我的 TreeView 函数中:

...
void TreeView()
        {
            foreach (var drive in mylist)
            {
                TreeViewItem item = new TreeViewItem();
                item.Tag = drive;
                item.Header = drive.ToString();
                item.Items.Add("*");
                treeView1.Items.Add(item);
                treeView1.Items.Refresh();
                treeView1.UpdateLayout();

            }
        }
...

问题: 在此 TreeView 中添加新元素后如何更新我的 TreeView?谢谢!

4

0 回答 0