Проблема привязки дерева - PullRequest
       8

Проблема привязки дерева

0 голосов
/ 18 апреля 2011

У меня есть окно MainWindow.xaml и

личное статическое учебное пособие;там.

Также у меня есть класс Structure.cs, где я описываю дочерние типы

public class Tutorial
{
    public string Name { get; set; }
    public IList<Chapter> Chapters = new List<Chapter>();
}


public class Chapter
{
    public string Name { get; set; }
    public IList<Unit> Units = new List<Unit>();
}

public class Unit
{
    public string Name { get; set; }
    public IList<Frame> Frames = new List<Frame>();
    ... 

}

Я хочу связать учебную структуру с древовидной структурой.Как я могу это сделать?

Я пробовал таким образом.

                    <TreeView Grid.Row="2" x:Name="treeViewStruct" Margin="5,0,5,0" Background="LemonChiffon" BorderBrush="Bisque" BorderThickness="1" ScrollViewer.VerticalScrollBarVisibility="Auto" IsTextSearchEnabled="True" Cursor="Hand">
                        <TreeView.Resources>
                            <HierarchicalDataTemplate DataType    = "{x:Type Structure:Chapter}"
                            ItemsSource = "{Binding Path=Units}">
                                <TextBlock Text="{Binding Path=Name}"/>
                            </HierarchicalDataTemplate>

                            <DataTemplate DataType="{x:Type Structure:Unit}">
                                <TextBlock Text="{Binding Path=Name}"/>
                        </DataTemplate>
                        </TreeView.Resources>
                    </TreeView>

Это не работает.Пожалуйста помоги!Я новичок в WPF.Мне нужно динамическое дерево, чтобы при добавлении главы или модуля в учебное пособие дерево обновлялось.И для этого способа связывания, пожалуйста, дайте идею, как я могу получить элемент коллекции, когда я выбрал какой-то узел дерева.

1 Ответ

0 голосов
/ 18 апреля 2011

Это может помочь:

<HierarchicalDateTemplate DataType = "{x:Type local:Tutorial}"
           ItemsSource="{Binding Chapters}">
           <TextBlock Text="{Binding Name}"/>
    </HierarchicalDateTemplate>

    <HierarchicalDateTemplate DataType = "{x:Type local:Chapter}"
           ItemsSource="{Binding Units}"
           <TextBlock Text="{Binding Name}"/>
    </HierarchicalDateTemplate>

    <DateTemplate DataType = "{x:Type local:Unit}"
           <TextBlock Text="{Binding Name}"/>
    </DateTemplate>
...