如何在wpf中更新我的TreeView?

时间:2013-02-04 14:14:47

标签: wpf treeview

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

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

...
<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? 谢谢!

0 个答案:

没有答案