[英]Binding multiple level hierarchy data in treeview wpf
我需要在wpf中为树视图绑定递归子节点。但是我真的不知道如何使它起作用。这是我发现的
ObservableCollection<Animal> animals = new ObservableCollection<Animal>();
animals.Add(new Animal("California Newt"));
animals.Add(new Animal("Tomato Frog"));
animals.Add(new Animal("Green Tree Frog"));
animals.Add(new Animal("Frog"));
AnimalCategories.Add(new AnimalCategory("Amphibians", animals));
animals = new ObservableCollection<Animal>();
animals.Add(new Animal("Golden Silk Spider"));
animals.Add(new Animal("Black Widow Spider"));
AnimalCategories.Add(new AnimalCategory("Spiders", animals))
需要在树视图上绑定的列表,这是它的结构
AnimalCategory类:
Class AnimalCategory
Private _category As String
Public Property Category As String
Get
Return _category
End Get
Set(ByVal value As String)
_category = value
End Set
End Property
Private _animals As ObservableCollection(Of Animal)
Public ReadOnly Property Animals() As ObservableCollection(Of Animal)
Get
If _animals Is Nothing Then
_animals = New ObservableCollection(Of Animal)()
End If
Return _animals
End Get
End Property
Public Sub New()
End Sub
Public Sub New(category As String, animals As ObservableCollection(Of Animal))
_category = category
_animals = animals
End Sub
End Class
动物类:
Class Animal
Private _name As String
Public Property Name As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
Public Sub New()
End Sub
Public Sub New(name As String)
_name = name
End Sub
End Class
而我的xaml代码是..!
<TreeView x:Name="radTreeView" Background="#4E4E4E" x:FieldModifier="public" ItemsSource="{x:Static local:cntlWPFMMTreeView.AnimalCategories}"
ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible">
<telerik:RadTreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Animals}">
<TextBlock Text="{Binding Category}" />
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</telerik:RadTreeView.ItemTemplate>
</TreeView>
使用上面的代码,我可以像下面这样绑定一级父级孩子,
buit,我需要像下面这样动态地绑定多个层次结构
在WPF中如何做..?
您可以将一个控件的值与另一控件的数据上下文绑定为-
Binding =“ {绑定路径= DataContext.MyBindingProperty,ElementName = MyMainWindow}
根据您的要求修改此行。
希望能帮助到你!
两件事:您必须在动物类中添加动物的ObservableCollections。 而且,您必须使用ItemsSource =“ {Binding Animals}”将HierarchicalDataTemplate的ItemTemplate更改为另一个HierarchicalDataTemplate。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.