Какой подход я должен использовать для привязки данных к TreeView? - PullRequest
1 голос
/ 23 декабря 2011

У меня есть вопрос архитектора:

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

Какой подход мне нужен?

В настоящее время я пытаюсь сделать: 1) Получить данные из базы данных и загрузить их в DataTable, а DataTable доступен из xaml. 2) Вызов DataTable из xaml и привязка TreeViewItem из столбца dataTable ... т.е.

<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 ]

1 голос
/ 23 декабря 2011

Используйте HierarchicalDataTemplate и соответственно свяжите TreeView. Вы можете использовать любой тип объекта в качестве основы для привязки; не нужно , чтобы быть DataTable.

Вы должны избегать создания TreeViewItem в вашем коде позади. Это просто не нужно и делает управление нисходящим потоком более громоздким, чем необходимо.

Как отметил КристоферС; У Джоша Смита есть отличная статья о TreeView с MVVM . У Bea Stoliz также есть хороший пост , в котором отображаются сгруппированные данные в TreeView .

0 голосов
/ 23 декабря 2011

Это, вероятно, на сегодняшний день лучший учебник по этой теме: http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx

...