1

我认为这是一个非常基本的问题,但我找不到答案。

我得到了一个 XML 文件,它使用分层数据模板加载到树视图的文本块中:

<HierarchicalDataTemplate.Triggers>
  <DataTrigger Binding="{Binding Path=NodeType}" Value="Element">
    <Setter TargetName="textBlock1" Property="Text" Value="{Binding Path=Name}"/>
  </DataTrigger>
</HierarchicalDataTemplate.Triggers>

打开 XML 的 c# 代码:

XmlDocument doc = new XmlDocument();
doc.Load(open.FileName);
XmlDataProvider dp = (XmlDataProvider)this.FindResource("nodes");
dp.Document = doc;
dp.XPath = "*";

当我双击 textBlock1 时,会出现一个带有取消和保存按钮的新窗口,以及一个包含所选节点的文本框(我要编辑的内容):

XmlNode selected_xNode = tree.SelectedItem as XmlNode;
openWindow.textBox1.Text = selected_xNode.Name;

这工作正常,但我不知道如何在单击保存按钮时将选定的节点名称更改为 textbox.text?

我想要类似的东西:

selected_xNode.Name = textBox1.Text;
4

1 回答 1

1

我认为您需要打开xml文件并写入指定的节点,然后再次保存。你不能只是尝试改变树。

XmlDocument doc = new XmlDocument(); 
doc.Load(open.FileName);
  1. 首先,您需要找到元素,最好使用 LiNq 到 Xml。

  2. 然后再次写回(替换旧的)。

  3. 节省

您已经有了 XmlNode,因此它可能已经足够找到该节点了。

http://www.hookdonlinq.com/LINQtoXML5MinuteOverview.ashx

于 2012-05-03T12:34:31.223 回答