Treeview绑定问题

时间:2011-04-18 10:40:35

标签: wpf wpf-controls binding

我有一个窗口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。我怎么能这样做?

我试过这种方式。

                    <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 :(得分:0)

这可能有所帮助:

<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>