【问题标题】:wpf treeview binding [closed]wpf树视图绑定[关闭]
【发布时间】: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 教程 - 那里有很多。

标签: wpf data-binding treeview


【解决方案1】:

看看 Josh Smiths 的优秀tutorial

【讨论】:

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

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

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

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

【讨论】:

    【解决方案3】:

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

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

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

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

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

    1. 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。
    猜你喜欢
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多