用包含子节点对象列表的Category对象绑定树视图
本文关键字:对象 绑定 视图 Category 列表 包含 子节点 | 更新日期: 2023-09-27 18:19:24
显示类别没有问题,但我无法让它显示应该在类别内的对象。我做错了什么?
提前谢谢你。
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#:包含树视图子对象的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;
}
}
}
获取数据: public List<Category> Get_Categories()
{
using (var context = new ProcessDatabaseEntities())
{
return context.Category.ToList();
}
}
c#绑定数据:
treeview.ItemsSource = d.Get_Categories();
您需要在 HierarchicalDataTemplate
上设置 ItemsSource
为 MethodComponent
,以便用子集合填充父节点。
<HierarchicalDataTemplate x:Key="Category"
ItemTemplate="{StaticResource Component}"
ItemsSource="{Binding MethodComponent}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>