5 / 5 / 1
Регистрация: 14.12.2014
Сообщений: 29
1
.NET 4.x

Не отображается древо TreeView

12.05.2016, 12:05. Показов 1045. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, разрабатываю шаблон отображения. TabControl + TreeView

Столкнулся с проблемой отображения нодов TreeView, помогите разобраться!

Если делать так как надо, то элементы древа не отображаются
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<TabControl ItemsSource="{Binding TabControlContent}" TabStripPlacement="Left" SelectedIndex="{Binding SelectedIndex}">
            <TabControl.ItemTemplate>
                <DataTemplate>
                    <Label Height="71" Content="{Binding StringSheetName}" VerticalContentAlignment="Center"/>
                </DataTemplate>
            </TabControl.ItemTemplate>
 
            <TabControl.ContentTemplate>
                <DataTemplate>
                    <TreeView ItemsSource="{Binding Tree}">
                        <TreeView.ItemTemplate>
                            <HierarchicalDataTemplate ItemsSource="{Binding Child}">
                                <TextBlock Text="{Binding Text}" Margin="0, 1" />
                            </HierarchicalDataTemplate>
                        </TreeView.ItemTemplate>
                    </TreeView>
                </DataTemplate>
            </TabControl.ContentTemplate>
        </TabControl>
Если поменять местами DataTemplate, то ноды отображаются
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<TabControl ItemsSource="{Binding TabControlContent}" TabStripPlacement="Left" SelectedIndex="{Binding SelectedIndex}">
            <TabControl.ItemTemplate>
          <DataTemplate>
                    <TreeView ItemsSource="{Binding Tree}">
                        <TreeView.ItemTemplate>
                            <HierarchicalDataTemplate ItemsSource="{Binding Child}">
                                <TextBlock Text="{Binding Text}" Margin="0, 1" />
                            </HierarchicalDataTemplate>
                        </TreeView.ItemTemplate>
                    </TreeView>
                </DataTemplate>
               
            </TabControl.ItemTemplate>
 
            <TabControl.ContentTemplate>
                <DataTemplate>
                    <Label Height="71" Content="{Binding StringSheetName}" VerticalContentAlignment="Center"/>
                </DataTemplate>
            </TabControl.ContentTemplate>
        </TabControl>
Модель древа
C#
1
2
3
4
5
6
7
8
9
10
class TCSTree
    {
        public string Text { get; set; }
        public List<TCSTree> Child { get; set; }
 
        public TCSTree()
        {
            Child = new List<TCSTree>();
        }
    }
Модель самого шаблона
C#
1
2
3
4
5
6
7
abstract class DataContextViewModelBase: ViewModelBase
    {
        public abstract string StringSheetName { get; protected set; }
        public abstract ExportType Type { get; protected set; }
        public abstract object Tree { get; set; }
        public abstract object SelectedNode { get; set; }
    }
Добавлено через 53 минуты
Ошибочка, при первом варианте отображается только на первой вкладке
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2016, 12:05
Ответы с готовыми решениями:

TreeView. Генеологическое древо
Необходимо создать нечто вроде генологического древо, где А1, А2, А3 - это корни, далее в папке...

Не отображается TreeView
Собственно сам код &lt;TreeView x:Name=&quot;Tree&quot; ItemsSource=&quot;{Binding TreeCollection,...

В treeview все отображается в одну строку
в treeview Отображается в одну строку.Почему? TreeNode tn = new TreeNode(); ...

Древо каталогов и файлов в treeview
Всем привет. Есть след. код: Private Sub Form1_Load(sender As Object, e As EventArgs)...

1
186 / 184 / 97
Регистрация: 30.04.2016
Сообщений: 478
12.05.2016, 19:13 2
Цитата Сообщение от vovan_vshivkov Посмотреть сообщение
Если делать так как надо, то элементы древа не отображаются
Почему это надо именно так?

У Вас не тот ContentTemplate переопределен. Нужно у TabItem'а это делать

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<TabControl ItemsSource="{Binding TabControlContent}" TabStripPlacement="Left" SelectedIndex="{Binding SelectedIndex}">
        <TabControl.ItemContainerStyle>
            <Style TargetType="TabItem">
                <Setter Property="HeaderTemplate">
                    <Setter.Value>
                        <DataTemplate DataType="{x:Type TabItem}">
                            <Label Height="71" Content="{Binding StringSheetName}" VerticalContentAlignment="Center"/>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
                <Setter Property="ContentTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <TreeView ItemsSource="{Binding Tree.Child}">
                                <TreeView.ItemTemplate>
                                    <HierarchicalDataTemplate ItemsSource="{Binding Child}">
                                        <TextBlock Text="{Binding Text}" Margin="0, 1" />
                                    </HierarchicalDataTemplate>
                                </TreeView.ItemTemplate>
                            </TreeView>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </TabControl.ItemContainerStyle>
    </TabControl>
0
12.05.2016, 19:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2016, 19:13
Помогаю со студенческими работами здесь

TreeView - выстроить древо списку из StringList
Все привет. Помогите построить древо в TreeView по существующему списку. Допустим, в StringList...

Не верно отображается TreeView, сформированный по данным из БД
Здраствуйте, подскажите пожайлуста. есть база Acess состоящая всего из двух таблиц Ylica, Dom. ...

При выборе узла treeView не отображается информация из БД в listView
Здравствуйте господа программисты! Столкнулся с следующей проблемой. При выборе узла treeView не...

Бинарное древо
Доброго времени суток. Подскажите пожалуйста, можно ли на основе Memo со случайными числами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru