使用包含子节点对象列表的Category对象绑定树视图

时间:2014-08-24 16:44:38

标签: c# wpf xaml treeview

显示类别没有问题,但我无法显示应该在类别中的对象。我做错了什么?

提前谢谢。

XAML- Datatemplates。

<DataTemplate x:Key="Component">

    <TextBlock Text="{Binding Name}"/>

</DataTemplate>

<HierarchicalDataTemplate x:Key="Category"
                          ItemTemplate="{StaticResource Component}">

    <TextBlock Text="{Binding Name}"/>

</HierarchicalDataTemplate>

XAML:Treeview

<telerik:RadTreeView x:Name="treeview" IsDragDropEnabled="True" 
                     HorizontalAlignment="Left" Margin="10,10,0,10" Width="190" 
                     IsManipulationEnabled="True"
                     IsExpandOnSingleClickEnabled="True"
                     ItemTemplate="{StaticResource Category}" />

C#:包含treeview的子对象的categoryclass。(从databasemodel生成)

public partial class Category
{
    public Category()
    {
        this.MethodComponent = new HashSet<MethodComponent>();
    }

    public int Id { get; set; }
    public string Name { get; set; }

    public virtual ICollection<MethodComponent> MethodComponent { get; set; }
    public override string ToString()
    {
        return Name;
    }
}

}

C#获取数据:

    public List<Category> Get_Categories()
    {

        using (var context = new ProcessDatabaseEntities())
        {
           return context.Category.ToList();
        }
    }

C#绑定数据:

treeview.ItemsSource = d.Get_Categories();

1 个答案:

答案 0 :(得分:0)

您需要在 ItemsSource 上将 HierarchicalDataTemplate 设置为 MethodComponent 以填充父节点儿童集合。

<HierarchicalDataTemplate x:Key="Category"
                          ItemTemplate="{StaticResource Component}"
                          ItemsSource="{Binding MethodComponent}">    

     <TextBlock Text="{Binding Name}"/>    

</HierarchicalDataTemplate>