wpf树视图绑定[关闭]

Posted

技术标签:

【中文标题】wpf树视图绑定[关闭]【英文标题】:wpf treeview binding [closed] 【发布时间】:2011-07-14 19:36:32 【问题描述】:

有没有关于WPF中的treeview绑定初学者的简单教程?

ItemsSource、DataType、ItemTemplate属性如果有的话应该写什么 一个项目列表?

IList<string> items = new List<string>();
items.Add("item1");
items.Add("item2");
items.Add("item3");

XAML 代码:

<TreeView Name="treeView1">  
    <TreeView.Resources> <!-- what does it mean? -->
        <HierarchicalDataTemplate DataType="???" ItemsSource="Binding ???"></HierarchicalDataTemplate>  
    </TreeView.Resources>  
</TreeView>

【问题讨论】:

在尝试绑定 TreeView 之前,您应该退后一步,尝试弄清楚这些东西是什么。只需遵循初学者 WPF 教程 - 那里有很多。 【参考方案1】:

看看 Josh Smiths 的优秀tutorial

【讨论】:

在这个明确的例子中——我应该怎么做?在问题的代码中【参考方案2】:

Treeview 是 wpf 中的一个控件,您必须以不同的方式使用它。它简单高效,同时对于初学者来说理解和跟踪是一件痛苦的事情,尤其是那些来自 windows 应用程序背景的.请先通过MVVM模式,然后尝试接近树视图。

下面的 Josh Smith 文章是一个很好的起点。

http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx

【讨论】:

【参考方案3】:

为了完全理解如何使用 wpf 树视图和数据绑定,我按顺序浏览了以下教程 -

    一个非常简单的使用递归的树视图绑定示例

http://testdrivendevelopment.wordpress.com/2008/07/15/databinding-wpf-treeview-using-recursion/

    Claus Konrads 使用树视图进行数据绑定的简单示例。这是我遇到的最直接的示例,应该可以让任何 wpf 新手快速上手。

http://blog.clauskonrad.net/2011/04/how-to-make-hierarchical-treeview.html

    Mike Hillbergs 教程详细介绍了树形视图的来龙去脉、它与其他 wpf 控件的比较以及如何绑定数据。

http://blogs.msdn.com/b/mikehillberg/archive/2009/10/30/treeview-and-hierarchicaldatatemplate-step-by-step.aspx

【讨论】:

克劳斯·康德拉德的例子很棒。 第一个示例需要进行一些调整才能开始工作 - 我在绑定中去掉了“Path=”,并为 local:Service 添加了一个 Window.DataContext 条目,其中 xmlns:local="clr- namespace:SimpleWpfTreeView”,用于名为“SimpleWpfTreeView”的项目 Claus Konrad 的博客似乎不可用,Mike Hillberg 在 MSDN 上的教程也似乎不可用,该教程默认为 Microsoft 开发博客首页【参考方案4】:

诀窍是ItemsSource 指向下一个集合。

例如假设你有一个类型 A 的集合,每个 A 包含一个描述和一个类型 B 的集合;每个 B 都包含一个描述和一个 C 类型的集合。绑定看起来像这样:

<TreeView Width="400" ItemsSource="Binding CollectionOfA">
    <TreeView.Resources>
        <HierarchicalDataTemplate DataType="x:Type TypeA" ItemsSource="Binding CollectionOfB">
            <TreeViewItem Header="Binding TypeADescription" />
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate DataType="x:Type TypeB" ItemsSource="Binding CollectionOfC">
            <TreeViewItem Header="Binding TypeBDescription" />
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate DataType="x:Type TypeC">
            <TreeViewItem Header="Binding TypeC" />
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>

【讨论】:

鉴于 TypeC 项没有子项,您可以只使用简单的 DataTemplate,而不是为这些项使用 HierarchicalDataTemplate。

以上是关于wpf树视图绑定[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

WPF(MVVM):从 Viewmodel 关闭视图?

WPF DataBound 树视图展开/折叠

WPF XBAP 树视图无法选择子项

WPF 数据绑定到第二个视图

WPF TreeView 数据绑定隐藏/显示展开/折叠图标

Wpf 主从列表视图绑定