Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разные шаблоны у дочерних элементов в TreeView, Разные HierarchicalDataTemplate 
V
    Опции темы
interv
  Дата 7.3.2013, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 24.1.2012

Репутация: нет
Всего: 4



Дерево строиться по DataTable, каждая следующая ветка записана в столбце SubTable
Код

//table: DataTable 
if (!table.Columns.Contains("SubTable"))
    table.Columns.Add("SubTable", table.GetType());
foreach (DataRow row in table.Rows)
{
    DataTable subTable = new DataTable();
    // Заподнение ветки (дочерних элементов)
    row["SubTable"] = subTable; 
}

шаблон настроен так, что каждая следующая ветка имеет свой шаблон:
Код

<HierarchicalDataTemplate x:Key="Template2" ItemsSource ="{Binding Path=SubTable}" ItemTemplate="{StaticResource Template3}">
        <!--тут описание шаблона 2-->
</HierarchicalDataTemplate>

<HierarchicalDataTemplate x:Key="Template1" ItemsSource ="{Binding Path=SubTable}" ItemTemplate="{StaticResource Template2}">
        <!--тут описание шаблона 1-->
</HierarchicalDataTemplate>
И так далее

Проблемма появляется при создании элеменов, у которых дочерние элементы должны иметь разный шаблон, вообще не понимаю как это сделать:
  • Элемент1 (Template1)
    • Элемент3 (Template2)
      • Элемент7 (Template3_1)
      • Элемент8 (Template3_2)
    • Элемент4 (Template2)
  • Элемент2 (Template1)
    • Элемент5 (Template2)
    • Элемент6 (Template2)

PM MAIL   Вверх
interv
Дата 7.3.2013, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 24.1.2012

Репутация: нет
Всего: 4



Решил проблемму при помощи ItemTemplateSelector
Код


<HierarchicalDataTemplate x:Key="Template3_1" ItemsSource ="{Binding Path=SubTable}">
        <!--тут описание шаблона 3.1-->
</HierarchicalDataTemplate>

<HierarchicalDataTemplate x:Key="Template3_2" ItemsSource ="{Binding Path=SubTable}">
        <!--тут описание шаблона 3.2-->
</HierarchicalDataTemplate>

<HierarchicalDataTemplate x:Key="Template2" ItemsSource ="{Binding Path=SubTable}" ItemTemplateSelector="{StaticResource trigerForTemplate3}">
        <!--тут описание шаблона 2-->
</HierarchicalDataTemplate>

<HierarchicalDataTemplate x:Key="Template1" ItemsSource ="{Binding Path=SubTable}" ItemTemplate="{StaticResource Template2}">
        <!--тут описание шаблона 1-->
</HierarchicalDataTemplate>


Код

public class TrigerDataTemplateSelector : DataTemplateSelector
{
        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            //тут выбираем HierarchicalDataTemplate в зависимости от item
        }
}


Это сообщение отредактировал(а) interv - 7.3.2013, 13:25
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.