首先,来个五级菜单:
public class
First
{
public First()
{
Seconds =
new ObservableCollection<
Second>();
}
public
string Name {
get;
set; }
public
string Url {
get;
set; }
public
string Subject {
get;
set; }
public
ObservableCollection<
Second> Seconds {
get;
set; }
}
public class
Second
{
public Second()
{
Thirds =
new ObservableCollection<
Third>();
}
public
string Name {
get;
set; }
public
string Url {
get;
set; }
public
string Subject {
get;
set; }
public
ObservableCollection<
Third> Thirds {
get;
set; }
}
public class
Third
{
public Third ()
{
Forths=
new
ObservableCollection<
Forth> ();
}
public
string Name {
get;
set; }
public
string Url {
get;
set; }
public
string Subject {
get;
set; }
public
ObservableCollection<
Forth> Forths {
get;
set; }
}
public class
Forth
{
public Forth ()
{
Fifths =
new ObservableCollection<
Fifth>();
}
public
string Name {
get;
set; }
public
string Url {
get;
set; }
public
string Subject {
get;
set; }
public
ObservableCollection<
Fifth> Fifths {
get;
set; }
}
public class
Fifth
{
public
string Name {
get;
set; }
public
string Url {
get;
set; }
public
string Subject {
get;
set; }
public
ObservableCollection<
Fifth> Fifths {
get;
set; }
}
XAML代码:
<UserControl.Resources>
<common:HierarchicalDataTemplate x:Key="FifthTemplate">
<Controls:TreeViewItem Header="{Binding
Name}" Tag="{Binding Url}"
TabIndex="{Binding Subject}" x:Name="fifth"/>
</common:HierarchicalDataTemplate>
<common:HierarchicalDataTemplate x:Key="ForthTemplate"
ItemsSource="{Binding Fifths}" ItemTemplate="{StaticResource
FifthTemplate}">
<Controls:TreeViewItem Header="{Binding
Name}" Tag="{Binding Url}"
TabIndex="{Binding Subject}" x:Name="forth"/>
</common:HierarchicalDataTemplate>
<common:HierarchicalDataTemplate x:Key="ThirdTemplate"
ItemsSource="{Binding Forths}" ItemTemplate="{StaticResource
ForthTemplate}">
<Controls:TreeViewItem Header="{Binding
Name}" Tag="{Binding Url}"
TabIndex="{Binding Subject}" x:Name="third"/>
</common:HierarchicalDataTemplate>
<common:HierarchicalDataTemplate x:Key="SecondTemplate"
ItemsSource="{Binding Thirds}" ItemTemplate="{StaticResource
ThirdTemplate}">
<Controls:TreeViewItem Header="{Binding
Name}" Tag="{Binding Url}"
TabIndex="{Binding Subject}" x:Name="second"/>
</common:HierarchicalDataTemplate>
<common:HierarchicalDataTemplate x:Key="FirstTemplate"
ItemsSource="{Binding Seconds}" ItemTemplate="{StaticResource
SecondTemplate}">
<Controls:TreeViewItem Header="{Binding
Name}" Tag="{Binding Url}"
TabIndex="{Binding Subject}" x:Name="first"/>
</common:HierarchicalDataTemplate>
</UserControl.Resources>
<Grid x:Name="LayoutRoot">
<Controls:TreeView x:Name="tvDemo"
ItemTemplate="{StaticResource FirstTemplate}"
></Controls:TreeView>
以上的做法参考了
http://www.cnblogs.com/chenxizhang/archive/2011/06/22/2087692.html,这样要如何取它选中的值呢? 尝试了很多种办法。。。。