0
我有一個叫ClassWithPupils
類,它看起來像:分層的數據綁定的TreeView
public class ClassWithPupils : ViewModelBase
{
public ClassWithPupils(IClass @class)
{
Class = @class;
Pupils = new ObservableCollection<IPupil>();
}
public IClass Class
{
get { return Get<IClass>(); }
set { Set(value); }
}
public ObservableCollection<IPupil> Pupils
{
get { return Get<ObservableCollection<IPupil>>(); }
set { Set(value); }
}
}
而且我有一個視圖模型包含了ObservableCollection<ClassWithPupils>
。
private ObservableCollection<ClassWithPupils> classesWithPupils;
public ObservableCollection<ClassWithPupils> ClassesWithPupils
{
get { return classesWithPupils ?? (classesWithPupils = new ObservableCollection<ClassWithPupils>()); }
}
該集合填充正確的數據庫項目。
現在我想要在TreeView
中顯示ClassesWithPupils層次結構中的所有項目。
我查看到目前爲止是這樣的:
<TreeView ItemsSource="{Binding ClassesWithPupils, UpdateSourceTrigger=PropertyChanged}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding}">
<Label Content="{Binding Class.Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
因此類名稱顯示正確。
不幸的是,我不知道如何將每個ClassWithPupils-Entry的學生集合綁定到TreeView中的正確項目上作爲子項。
我想是這樣的:
<TreeView ItemsSource="{Binding ClassesWithPupils, UpdateSourceTrigger=PropertyChanged}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding}">
<Label Content="{Binding Class.Name}"/>
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Pupils}">
<Label Content="{Binding Name}"/>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
沒有成功...
所以我的問題是:我怎麼能顯示學生的姓名作爲樹視圖類的孩子呢?
看起來不錯。我怎樣才能顯示在父元素的類名? – Tomtom
也許你可以打印顯示你的樹形圖的外觀,也許你可以指定更多的細節,你想要在哪裏出現類的名字? –
不幸的是我無法打印屏幕。我的樹現在有兩個根節點,每個節點有兩個孩子。兒童的名稱顯示正確,但根節點爲空 – Tomtom