繁体   English   中英

WPF C#-树形视图中的XML编辑绑定

[英]WPF C# - XML Edit Binding in Treeview

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

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

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

用c#代码打开XML:

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;

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

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

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

您已经有了XmlNode,因此足以找到该节点。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM