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.hookedonlinq.com/LINQtoXML5MinuteOverview.ashx

于 2012-05-03T12:34:31.223 に答える