Treeview 的每个级别都有不同的绑定方法
我在后面的代码中生成了一个 XDocument ,如下所示:
<Root>
<Pubs>
<Book id='A123'>
<Author state='AS'>Moreno</Author>
</Book>
<Book id='B456'>
<Author state='BS'>Gazit</Author>
</Book>
</Pubs>
</Root>
并希望将其绑定到 WPF 应用程序中的 Treeview 控件以获得类似的内容:
+ Pubs //Pubs Element Name
+ A123 //Book Element Attribute Value
+ Moreno //Author Element Inner text
+ B456
+ Gazit
那么,最好的解决方案是什么?
I've generated an XDocument at code behind as below:
<Root>
<Pubs>
<Book id='A123'>
<Author state='AS'>Moreno</Author>
</Book>
<Book id='B456'>
<Author state='BS'>Gazit</Author>
</Book>
</Pubs>
</Root>
and want to bind this to a Treeview control in WPF application to have something like this:
+ Pubs //Pubs Element Name
+ A123 //Book Element Attribute Value
+ Moreno //Author Element Inner text
+ B456
+ Gazit
so, what is the best solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您应该将每个元素反序列化为适当的对象,然后从可观察的集合中构建树层次结构。
您应该阅读有关使用 MVVM 的 WPF TreeView 的内容。本教程非常好 -
http://www.codeproject.com/KB/WPF/TreeViewWithViewModel .aspx
You should deserialize each of these elements into a proper object, and then build a tree hierarchy out of observable collections.
You should read about WPF TreeView using MVVM. This tutorial is pretty good -
http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx
在您的(控件、窗口或应用程序)资源中定义一个以 Book 作为 DataType 的 DataTemplate,并将 TreeView 绑定到您的 Book 列表可能会完成这项工作。
Defining in your (control or window or application) resources a DataTemplate having Book as DataType, and binding a TreeView to your list of Book might do the job.
这就是答案:
对于 TreeView 的每个级别,我们必须在
TreeView.Resources
中定义一个特定的HierarchicalDataTemplate
,其中包含:DataType
> = 元素名称ItemsSource
= 绑定子名称,如下所示:
一切正常!
This Is the Answer:
For each Level of TreeView we must define a specific
HierarchicalDataTemplate
inTreeView.Resources
with:DataType
= element nameItemsSource
= binding child namefor example as below:
and everything is ok!