我应该采取什么方法将数据绑定到TreeView?

时间:2011-12-23 18:43:14

标签: wpf controls bind

我有一个建筑师问题:

我想使用树状视图显示某些类别,如果用户点击,则需要显示每个类别,需要显示该类别的总产品。

我需要采取什么方法?

目前,我正在尝试: 1)从数据库获取数据并将其加载到DataTable,并且可以从xaml访问DataTable。 2)从xaml调用DataTable并从dataTable Column绑定TreeViewItem ...即,

<TreeView ItemsSource="{Binding ElementName=_this, Path=SubCategoriesTable}" Name="trSubCategories">
<TreeView.ItemTemplate>
    <DataTemplate>
        <TreeViewItem Header="Home">
            <TreeViewItem Header="{Binding Path=sub_category_name}"></TreeViewItem>
        </TreeViewItem>
    </DataTemplate>
</TreeView.ItemTemplate>

我不知道这是一种正确的方法吗?或者我应该通过循环每个数据表行和列来在我的代码中添加TreeViewItem吗?

请帮忙!

2 个答案:

答案 0 :(得分:1)

使用HierarchicalDataTemplate并相应地绑定您的TreeView。您可以使用任何对象类型作为绑定的支持;它 不是DataTable

您应该避免在代码中构建TreeViewItem。它根本不需要,并使下游管理更加繁琐,然后才需要。

ChristopherS指出;约什史密斯有一篇关于TreeView with MVVM的精彩文章。 Bea Stoliz在displaying grouped data in a TreeView上发表了一篇不错的帖子。

答案 1 :(得分:0)

这可能是到目前为止您可以找到的有关此主题的最佳教程:http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx