EntityFramework的数据怎么绑定到wpf的TreeView里
Entity Framework的code:public class sort
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<sort> sorts { get; set; }
}
public class myDb : DbContext
{
public DbSet<sort> sorts { get; set; }
}
然后里面加了几个分类都能正常的存取.嵌套.
using (var context = new myDb())
{
var r1 = new sort {Name = "Lei1"};
var r3 = new sort {Name = "Lei3"};
var r5 = new sort {Name = "Lei5"};
var r4 = new sort {Name = "Lei4"};
r4.sorts = new Collection<sort>() {r1};
r1.sorts = new Collection<sort>() {r3};
r5.sorts = new Collection<sort>() {r4};
context.Entry(r5).State = EntityState.Added;
context.SaveChanges();
}
生成的数据库也正常:
ID Name sort_ID
1 Lei5 NULL
2 Lei4 1
3 Lei1 2
4 Lei3 3
但绑定到TreeView的时候.只显示第一层的Name.不显示加减号.
断点看了变量的数据结构是正常嵌套的.有子层.求大神看看. wpf TreeView --------------------编程问答-------------------- 你是怎么绑定的?
要用递归加载的treeview上 --------------------编程问答--------------------
我这样绑定不行.
var r6 = context.sorts.FirstOrDefault(x => x.Name == "Lei5");
TreeView1.ItemsSource = new Collection<sort>() { r6 };
这个r6的结构有嵌套.和网上其他绑定实例结构差不多. --------------------编程问答-------------------- 我看网上一些实例,绑定数据是List的.然后是递归方法.但 EntityFramework这个codeFirst生成的数据自动就递归好了呀.只不过是 Collection<>()格式的. --------------------编程问答-------------------- 用DataTemplate,准备好数据源放在xmal的静态资源里,再准备一组<HierarchicalDataTemplate></HierarchicalDataTemplate>
设置其DataType,可以确定每一层要绑定的数据类型,最好把数据源Binding给treeview就好了 --------------------编程问答-------------------- xaml --------------------编程问答--------------------
你这是普通的数据.网上也很多这样的例子.但是EntityFramework的数据这样不行.只显示一个节点.不知道是怎么回事.
<Window.Resources>--------------------编程问答-------------------- EntityFramework或linq高手们
<ResourceDictionary>
<HierarchicalDataTemplate x:Key="CheckBoxItemTemplate" DataType="{x:Type dal:sort}" ItemsSource="{Binding sorts}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</HierarchicalDataTemplate>
</ResourceDictionary>
</Window.Resources>
<Grid>
<TreeView Name="TreeView1" ItemsSource="{Binding}" ItemTemplate="{StaticResource CheckBoxItemTemplate}">
</TreeView>
</Grid>
补充:.NET技术 , C#