3
結合問題考慮下面的數據結構:TreeView控件在WPF
List<Person> People;
class Person {
List<Car> Cars;
List<Hobby> Hobbies;
}
我想一個TreeView綁定到這個結構。它應該看起來像這樣:
People
> Frank
> Cars
> BMW
> Ford
> Hobbies
> Tennis
> Golf
> Jane
> Cars
> Hobbies
這怎麼能在XAML中實現?下面是我到目前爲止有:
<TreeView>
<TreeView.Resources>
<DataTemplate x:Key="PersonTemplate">
<TextBlock Header="{Binding Name}">
<TextBlock.ContextMenu>
<ContextMenu>
<MenuItem Header="Remove" />
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</DataTemplate>
</TreeView.Resources>
<TreeViewItem Header="{Binding Name}"IsExpanded="True" >
<TreeViewItem Header="People"
ItemsSource="{Binding People}"
ItemTemplate="{StaticResource PersonTemplate}">
</TreeViewItem>
</TreeViewItem>
</TreeView>
這是一個後續問題binding-a-treeview-with-contextmenu-in-xaml
你擊敗了我:-)這是對錶現和數據(模型)層的清晰抽象。實際上,我在生產代碼中使用了Josh的例子,它的工作很好。 – bic 2010-03-23 22:59:50
我同意,通過這個特定的示例工作真的讓一切都爲我點擊。 – gn22 2010-03-23 23:01:26
好吧,這看起來很有趣。我明天要進一步閱讀。 您是否推薦使用ViewModel:class PersonViewModel {object [] Items = {new CarsViewModel(),new HobbiesViewModel()}?因此,爲每個我想要顯示的TreeViewItem創建一個ViewModel? – 2010-03-23 23:16:21