powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / TreeView с неизвезсным количеством уровней иерархии
2 сообщений из 2, страница 1 из 1
TreeView с неизвезсным количеством уровней иерархии
    #37835350
Woldemar665
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть табличка со ссылкой на саму себя. Привязываю её к дереву следующим образом:
Ресурсы:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
   <Window.Resources>
        <ObjectDataProvider x:Key="dataSetProvider"
                            MethodName="CreateDataSet"
                            ObjectType="{x:Type local:DataSetCreator}"></ObjectDataProvider>
        <DataTemplate x:Key="DetailTemplate">
            <TextBlock Text="{Binding UNITNAME}"/>
        </DataTemplate>
        <HierarchicalDataTemplate
            x:Key="MasterTemplate"
            ItemsSource="{Binding Path=UNIT_UNIT}"
            ItemTemplate="{StaticResource DetailTemplate}">
            <TextBlock Text="{Binding UNITNAME}"/>
        </HierarchicalDataTemplate>
    </Window.Resources>


Само дерево:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<TreeView Margin="6,39,5,38" Name="unitsTreeView" DataContext="{DynamicResource dataSetProvider}"
                              ItemsSource="{Binding UNIT}"
                              ItemTemplate="{StaticResource MasterTemplate}" SelectedItemChanged="unitsTreeView_SelectedItemChanged" >
                        <TreeView.ItemContainerStyle>
                            <Style>
                                <Setter Property="TreeViewItem.IsExpanded" Value="True"></Setter>
                            </Style>
                        </TreeView.ItemContainerStyle>
                    </TreeView>


DataProvider:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
class DataSetCreator
    {
        public static DataSet1 CreateDataSet()
        {
            DataSet1 ds = new DataSet1();
            UnitAdapter unitAdapter = new UnitAdapter(Properties.Settings.Default.connectionString);
            DataSet1.UNITDataTable unitTable = unitAdapter.GetAllUnits();
            foreach (DataSet1.UNITRow ur in unitTable.Rows)
            {
                DataSet1.UNITRow newur = (DataSet1.UNITRow)ds.Tables["UNIT"].NewRow();
                newur.ItemArray = ur.ItemArray;
                ds.Tables["UNIT"].Rows.Add(newur);
            }
            ds.Tables["UNIT"].DefaultView.RowFilter = "PARENTNAME = 'Кореневий підрозділ' AND UNITID <> 0";
            return ds;
        }
    }


Проблема в следующем: отображается не больше двух уровней вложености.
Обясню на примере: есть 4 элемента: 1, 2, 3, 4. 1 и 4 являются корневыми. 2 - принадлежит 1-му. 3 - принадлежит 2-му. Так вот 1, 2, 4 оборажаются, а 3 - нет.
Помогите кто чем может).
P.S. У меня такое подозрение что закавыка в HierarchicalDataTemplate, но никак немогу понять в чем проблема.
...
Рейтинг: 0 / 0
TreeView с неизвезсным количеством уровней иерархии
    #37836465
Woldemar665
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Woldemar665,

Решение найдено:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<HierarchicalDataTemplate
            x:Key="DetailTemplate"
            ItemsSource="{Binding Path=FK_UNIT_UNIT}">
            <TextBlock Text="{Binding UNITNAME}"/>
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate
            x:Key="MasterTemplate"
            ItemsSource="{Binding Path=FK_UNIT_UNIT}"
            ItemTemplate="{StaticResource DetailTemplate}">
            <TextBlock Text="{Binding UNITNAME}"/>
        </HierarchicalDataTemplate>
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / TreeView с неизвезсным количеством уровней иерархии
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]