如何将 xml 绑定(bind)到 wpf TreeView ?我正在使用 Prism mvvm 模式。我更喜欢 IList 来保存循环数据。
我试过http://geeklyeverafter.blogspot.com/2010/03/wpf-treeview-bound-to-xml-file.html和
http://www.blogs.intuidev.com/post/2009/12/28/xml_to_treeview.aspx
但没有任何效果。
最佳答案
好的。现在这个问题已经很老了,但我认为有一种简单的方法可以将 XML 绑定(bind)到 TreeView。也许它对某人有帮助。
XAML:
<Window.Resources>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Elements}" x:Key="NodeTemplate">
<Grid>
<TextBlock Text="{Binding Path=Name}"/>
</Grid>
</HierarchicalDataTemplate>
</Window.Resources>
...
<TreeView x:Name="myTreeView" Grid.Column="0"
ItemsSource="{Binding Path=Root.Elements}"
ItemTemplate="{StaticResource ResourceKey=NodeTemplate}"
/>
在后面的代码中,我只创建了一个 XDocument (System.Xml.linq) 并将其绑定(bind)到 TreeView 的 DataContext。例如像这样:
private XDocument _theXML;
public XDocument TheXML {
get => _theXML;
set => _theXML = value;
}
public MainWindow()
{
...
InitializeComponent();
DataContext = this;
TheXML = XDocument.Load(@"c:\file.xml");
myTreeView.DataContext = TheXML;
myTreeView.UpdateLayout();
}
就是这样。 XML 文件的内容将显示为 TreeView。如果您想查看更多详细信息(属性、...),您可以在 XAML 代码中优化模板。
关于c# - 如何将 xml 绑定(bind)到 wpf TreeView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19868889/