J'ai une table (Hesab) avec 3 champs (ID, Name, FatherID), et utiliser EF.Comment remplir TreeView à partir de la base de données
ID fatherID Nom
1 NULL A
2 NULL B
3 2 C
4 1 D
5 4 E
6 4 F
7 3 G
8 1 H
et je veux remplir ce tableau en arborescence
l'arbre doit être de remplissage de ce type de A -D -F -E - H B -C --g
I a créé cette classe
class Hesabs:Hesab
{
public Hesabs()
{
AllHesab = new ObservableCollection<Hesab>();
}
public ObservableCollection<Hesab> AllHesab { get; set; }
}
et ViewModel
public ObservableCollection<Hesabs> AllHesab { get; set; }
public ObservableCollection<Hesabs> FirstHesab { get; set; }
public ViewModelHesabs()
{
CRMEntities crm=new CRMEntities();
var ls = from h in crm.Hesab
where (h.FatherID == null)
select h;
ObservableCollection<Hesabs> hes = new ObservableCollection<Hesabs>();
foreach (Hesab hh in ls.ToList())
{
var ls2 = from h in crm.Hesab
where (h.FatherID == hh.ID)
select h;
Hesabs hesab = new Hesabs();
hesab.Name = hh.Name;
hesab.ID = hh.ID;
hesab.AllHesab = new ObservableCollection<Hesab>(ls2.ToList());
hes.Add(hesab);
}
FirstHesab = hes;
}
et XAML
<TreeView ItemsSource="{Binding FirstHesab}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding AllHesab}" DataType=" {x:Type local:Hesabs}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" Tag="{Binding ID}"/>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
mais remplir 2 niveaux :(
merci beaucoup ... –