次のようなxmlファイルがあります。
<servers>
<general name="1">
<service name="ser1"/>
<service name="ser2"/>
</general>
<general name="2">
<service name="ser1"/>
<service name="ser2"/>
</general>
</servers>
私のwinformアプリケーションでは、チェックボックスプロパティがtrueに設定されたツリービューリストがあります。達成しようとしているのは、このxmlファイルを読み取って、親ノードと子ノードの両方をこのツリービューに更新しようとしていることです。
私が試したことは次のとおりです。
XDocument doc = XDocument.Load(@"D:\\path.xml");
TreeNode node;
var gnrl = from general in doc.Descendants("general")
select new
{
parent = general.Attribute("name").Value,
child = general.Descendants("service")
};
//Loop through results
foreach (var general in gnrl)
{
// Add a root node.
node = dcselectview.Nodes.Add(String.Format(general.parent));
foreach (var ser in general.child)
{
// Add a node as a child of the previously added node.
node = node.Nodes.Add(String.Format(ser.Attribute("name").Value));
}
}
ファイルを読み取り、すべての詳細が更新されますが、適切な方法ではありません。むしろ、以下のように表示されます。
必要:
親要素を子要素の上と下に配置したい。可能であれば、親要素のチェックボックスがないといいでしょう。
どんな助けでも本当に感謝しています..
編集:
私のコードが編集されました。今、私は下の新しい写真に示すようになっています:
2本の黒い線を別の子ノードとしてではなく、同じ行に配置したい..