使用XElement将XML数据简单绑定到WPF TreeView

时间:2011-08-15 20:43:58

标签: c# wpf xml treeview xelement

我已经有一段时间了,因为我不得不使用语法来实际将使用XElement的XML数据集连接到WPF TreeView。我试图重新创建一个非常简单的例子,但我没有在TreeView中显示任何内容。

这是我的XAML

<Window.Resources>
    <HierarchicalDataTemplate ItemsSource="{Binding Path=Elements}" x:Key="ViewEditTreeTemplate">
        <StackPanel Orientation="Horizontal" Margin="1">
            <Label x:Name="ElementHeaderLabel" Content="{Binding Path=Name.LocalName}" />
        </StackPanel>
    </HierarchicalDataTemplate>
</Window.Resources>


<Grid>
    <TreeView  Name="DataTree" ItemsSource="{Binding Source={StaticResource ViewEditTreeTemplate}}" Height="160"  Width="176" />
</Grid>

这是背后的代码。

XElement Element = XElement.Load("test.xml");
DataTree.DataContext = Element;

“test.xml”格式正确,加载时没有错误。我不明白为什么在设置数据上下文后没有显示任何内容。

1 个答案:

答案 0 :(得分:0)

您没有设置TreeView的ItemTemplate(您似乎不小心将其设置为ItemsSource)并且您无法将模板隐式应用于XML数据,从而使其成为资源(进一步设置了密钥)无论哪种方式都可以阻止。)

我认为在代码背后你应该设置ItemsSource而不是DataContext,它应该是根元素列表或仅包含根元素的单元素列表。