我已经有一段时间了,因为我不得不使用语法来实际将使用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”格式正确,加载时没有错误。我不明白为什么在设置数据上下文后没有显示任何内容。
答案 0 :(得分:0)
您没有设置TreeView的ItemTemplate
(您似乎不小心将其设置为ItemsSource
)并且您无法将模板隐式应用于XML数据,从而使其成为资源(进一步设置了密钥)无论哪种方式都可以阻止。)
我认为在代码背后你应该设置ItemsSource
而不是DataContext
,它应该是根元素列表或仅包含根元素的单元素列表。