将多个hierarchicalDataTemplates分配给TreeView ItemTemplate的正确方法是什么?

时间:2017-01-21 20:04:23

标签: c# wpf treeview hierarchicaldatatemplate

我有三个XML HierarchicalDataTemplates。它们在运行时加载,然后分配给TreeView.ItemTemplate。这是我大约六年前在类似项目上成功使用的代码。它不仅现在不起作用(原始项目仍然神秘地工作正常)但是,坦率地说,我无法理解我六年前编写的代码或为什么它的工作原理!这是代码片段(OOB是TreeView):

       //This is for dynamically building a treeview with templates from an XML file
        XmlTextReader xmlReader1 = new XmlTextReader("HierarchicalDataTemplate1.xml");
        HierarchicalDataTemplate hierarchicalDataTemplate1 = XamlReader.Load(xmlReader1) as HierarchicalDataTemplate;

        XmlTextReader xmlReader2 = new XmlTextReader("HierarchicalDataTemplate2.xml");
        HierarchicalDataTemplate hierarchicalDataTemplate2 = XamlReader.Load(xmlReader2) as HierarchicalDataTemplate;
        hierarchicalDataTemplate1.ItemTemplate = hierarchicalDataTemplate2;

        XmlTextReader xmlReader3 = new XmlTextReader("HierarchicalDataTemplate3.xml");
        HierarchicalDataTemplate hierarchicalDataTemplate3 = XamlReader.Load(xmlReader3) as HierarchicalDataTemplate;
        hierarchicalDataTemplate2.ItemTemplate = hierarchicalDataTemplate3;

        OOB.ItemTemplate = hierarchicalDataTemplate1;

        Thread updateThread = new Thread(new ParameterizedThreadStart(UpdateTree));
        updateThread.Start(this);

TreeView(OOB)正确显示前两个节点级别,但不显示第三个节点级别。考虑到,我没有看到第三个hierarchyDataTemplate是如何分配给OOB.ItemTemplate的,这并不奇怪(好吧,令人惊讶的是它为什么在我六年前写的代码中正常工作)。

有人能告诉我如何正确地将三个单独的XML hierarchicalDataTemplate文件分配给TreeView吗?谢谢!

1 个答案:

答案 0 :(得分:0)

这不是问题所在。这是使用Xpath设置HierarchicalDataTemplate XML文件的方式。抱歉!谢谢!