編輯:沒有看到你想只在XAML中做到這一點。 This MSDN文章應該幫助你。
HierarchicalDataTemplate
如果你的數據已經是分層的形式,那麼它並不是那麼糟糕。比方說,你用這樣的代碼,XML數據轉換成一個模型類:
public partial class TreeViewHierarchy : Window
{
public ObservableCollection<Folder> Folders
{
get;
set;
}
public TreeViewHierarchy()
{
Folder system32 = new Folder() { Name = "system32" };
Folder windows = new Folder() { Name = "windows",
Children = new ObservableCollection<Folder>() { system32 } };
Folder things = new Folder() { Name = "things" };
Folder stuff = new Folder() { Name = "stuff" };
Folder c = new Folder() { Name = "C:",
Children = new ObservableCollection<Folder>() { stuff, things, windows } };
Folders = new ObservableCollection<Folder>() { c };
InitializeComponent();
}
}
public class Folder
{
public string Name
{
get;
set;
}
public ObservableCollection<Folder> Children
{
get;
set;
}
}
然後XAML爲您TreeView
會是如此簡單:
<Window x:Class="TestWpfApplication.TreeViewHierarchy"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TreeViewHierarchy" Height="300" Width="300"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<TreeView ItemsSource="{Binding Folders}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
而結果:
alt text http://img191.imageshack.us/img191/7841/treeviewhierarchy.png
我已經添加了藝術的鏈接應該幫助你使用XAML來完成這個任務。 – Charlie 2010-04-28 19:21:41