如何遍历树视图并从所有节点获取值

时间:2017-04-30 15:57:46

标签: c# xml wpf treeview

无论我怎么问,我都找不到这个问题的答案。如果树视图在WinForms中,似乎有解决方案,但如果它在WPF中则没有。

我正在运行时加载一个绑定到名为OOB的树视图的XML文件。用户可以对树视图执行各种编辑(添加和删除节点,更改节点的内容等)。所有这一切都很完美。现在,我必须将其保存为XML文件。显然,这在WPF中几乎是不可能的。

此时我所能想到的就是遍历整个树(从我读过的内容可能有必要首先扩展所有节点,这很容易就完成了)然后我可以一个接一个地阅读节点并使用xmlWriter将它们写入XML文件。

所以,除非有人有更好的想法,我怎么能在C#和WPF中遍历整个树,获取每个Node.name的内容?一旦我拥有每个节点的内容,我就应该能够重构树结构并将它们写成XML文件。

1 个答案:

答案 0 :(得分:-3)

尝试其中一种解决方案

protected void TraverseNodes(TreeNodeCollection nodes, string action, int maxDepth = 2) 
    {
        foreach (TreeNode node in nodes)
        {
            if (node.ChildNodes.Count > 0 && node.Depth < maxDepth)
                TraverseNodes(node.ChildNodes, action, maxDepth);

            //do something!!!
            var x = node.Text;
            node.Checked = !node.Checked;
        }
    }

另一种解决方案

require 'my-settings.php';

echo '>>'.$curAppId.'<<';

    $content = array(
                     "en" => 'English Message'
                     );

    $fields = array(
                    'app_id' => $curAppId,
                    'included_segments' => array('All'),
                    'data' => array("foo" => "bar"),
                    'contents' => $content
                    );

    $fields = json_encode($fields);
    print("\nJSON sent:\n");