wpf привязка к дереву - PullRequest
       45

wpf привязка к дереву

17 голосов
/ 14 марта 2011

Есть ли какое-нибудь простое руководство для начинающих по привязке к дереву в WPF ?

Что мы должны написать в атрибутах 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>

Ответы [ 4 ]

25 голосов
/ 18 июня 2013

Чтобы полностью понять, как использовать дерево wpf с привязкой данных, я прошел следующие уроки по порядку -

1) Очень простой пример привязки к дереву с использованием рекурсии

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

2) Клаус Конрадс - простой пример привязки данных к древовидной структуре. Это самый простой пример, с которым мне приходилось сталкиваться, и он должен заставить новичков набрать скорость.

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

3) Учебное пособие Майка Хилберга подробно показывает входные и выходные данные древовидной структуры, ее сравнение с другими элементами управления wpf и способы привязки данных.

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

5 голосов
/ 14 марта 2011

Посмотрите на Джоша Смитса отлично учебник

0 голосов
/ 06 ноября 2018

Хитрость в том, что 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>
0 голосов
/ 14 марта 2011

Treeview - это один элемент управления в wpf, к которому вы должны подходить немного по-разному. Он прост и эффективен, и в то же время это боль для понимания и отслеживания для новичка, особенно тех, кто исходит из фонового приложения Windows. Пожалуйста, сначала пройдите шаблон MVVM , а затем попытайтесь приблизиться к дереву.

Статья Джоша Смита ниже - хорошее место для начала.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...