Привязка TreeView - PullRequest
       2

Привязка TreeView

0 голосов
/ 11 ноября 2010

У меня есть таблица базы данных с Id, Group, Items в качестве столбцов.Как кодировать шаблон xaml с привязкой, чтобы список отображался как

Группа 1

  • элемент 1
  • элемент 2

Группа 2

  • пункт 3

1 Ответ

0 голосов
/ 11 ноября 2010

Поскольку вам нужна иерархия, лучшим подходом на мой взгляд будет TreeView .Вы должны заранее сгруппировать данные в нужной вам иерархии, затем вы можете привязать данные дерева к элементам верхнего уровня в вашем источнике данных, в вашем случае элементам «Группировать».

Для элементов, которые имеюттакже дочерние элементы, вам нужно добавить HierarchicalDataTemplate в древовидную структуру - важно, чтобы любой объект, из которого вы рисуете свои элементы, должен поддерживать свойство, содержащее коллекцию дочерних элементов, это настраивается в атрибуте ItemsSource.

Для элементов, которые не имеют дочерних элементов (элементы "item" в вашем примере), вы можете добавить обычный DataTemplate.

В итоге XAML в виде дерева может выглядеть примерно так:

        <TreeView Name="myTreeView" ItemsSource="{Binding}" >
            <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type GroupType}" ItemsSource="{Binding Items}">
                </HierarchicalDataTemplate>
                <DataTemplate DataType="{x:Type ItemType}">
                </DataTemplate>
            </TreeView.Resources>
        </TreeView>

Чтобы назначить узлы верхнего уровня после создания соответствующих объектов данных (каждому из которых, в свою очередь, назначается коллекция дочерних элементов), вы можете просто сказать:

    foreach(GroupType myGroup in myGroupCollection)
        myTreeView.Items.Add(myGroup);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...