C# 我想用新值刷新treeview

C# 我想用新值刷新treeview,c#,C#,我使用以下代码将xml显示为树视图 现在,我想在编辑xml时使用同一窗口中的一些文本框进行刷新。当我使用textbox编辑和保存文件时,我想用这个新值刷新treeview 我怎么做 我使用treeview1.update()和treeview1.refresh()但它不工作 我使用了以下代码部分: private void button1_Click(object sender, EventArgs e) { XmlDataDocument xmldoc = new XmlDataDoc

我使用以下代码将xml显示为树视图

现在,我想在编辑xml时使用同一窗口中的一些文本框进行刷新。当我使用textbox编辑和保存文件时,我想用这个新值刷新treeview

我怎么做

我使用
treeview1.update()
treeview1.refresh()但它不工作

我使用了以下代码部分:

private void button1_Click(object sender, EventArgs e)
{
    XmlDataDocument xmldoc = new XmlDataDocument();
    XmlNode xmlnode ;
    FileStream fs = new FileStream("tree.xml", FileMode.Open, FileAccess.Read);
    xmldoc.Load(fs);
    xmlnode = xmldoc.ChildNodes[1];
    treeView1.Nodes.Clear();
    treeView1.Nodes.Add(new TreeNode(xmldoc.DocumentElement.Name));
    TreeNode tNode ;
    tNode = treeView1.Nodes[0];
    AddNode(xmlnode, tNode);
}

private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode)
{
    XmlNode xNode ;
    TreeNode tNode ;
    XmlNodeList nodeList ;
    int i = 0;
    if (inXmlNode.HasChildNodes)
    {
        nodeList = inXmlNode.ChildNodes;
        for (i = 0; i <= nodeList.Count - 1; i++)
        {
            xNode = inXmlNode.ChildNodes[i];
            inTreeNode.Nodes.Add(new TreeNode(xNode.Name));
            tNode = inTreeNode.Nodes[i];
            AddNode(xNode, tNode);
        }
    }
    else
    {
        inTreeNode.Text = inXmlNode.InnerText.ToString();
    }
}
private void按钮1\u单击(对象发送者,事件参数e)
{
XmlDataDocument xmldoc=新的XmlDataDocument();
XmlNode XmlNode;
FileStream fs=newfilestream(“tree.xml”,FileMode.Open,FileAccess.Read);
xmldoc.Load(fs);
xmlnode=xmldoc.ChildNodes[1];
treeView1.Nodes.Clear();
添加(新的TreeNode(xmldoc.DocumentElement.Name));
三烯醇化物;
tNode=treeView1.Nodes[0];
AddNode(xmlnode,tNode);
}
私有void AddNode(XmlNode中的XmlNode,TreeNode中的TreeNode)
{
xmlnodexnode;
三烯醇化物;
XmlNodeList节点列表;
int i=0;
if(inXmlNode.HasChildNodes)
{
nodeList=inXmlNode.ChildNodes;

对于(i=0;i您可以在保存更改后创建全新的treeview。为了重用现有代码,您可以对其进行重构:

private void button1_Click(object sender, EventArgs e)
{
  this.FillTreeView();
}
private void FillTreeView()
{
    XmlDataDocument xmldoc = new XmlDataDocument();
    XmlNode xmlnode ;
    FileStream fs = new FileStream("tree.xml", FileMode.Open, FileAccess.Read);
    xmldoc.Load(fs);
    xmlnode = xmldoc.ChildNodes[1];
    treeView1.Nodes.Clear();
    treeView1.Nodes.Add(new TreeNode(xmldoc.DocumentElement.Name));
    TreeNode tNode ;
    tNode = treeView1.Nodes[0];
    AddNode(xmlnode, tNode);
}
private void AddNode(...) { ... }
…保存对xml文件的修改后,调用
FillTreeView()


Stephan是对的,但请注意,
XmlDataDocument
类已过时,我建议使用
XmlDocument
类或Linq to XML。有关XmlDocument的示例,请查看young Fang的回答
private void button2_Click(object sender, EventArgs e)
{
  // [Save changes to file]
  this.FillTreeView();
}