C# 具有递归模板的WPF绑定属性
我通过树状视图展示了一个树状结构。因为不知道树有多深,所以我使用递归HierarchycalDataTemplate 在下面的代码中,我将数据绑定到外部对象树C# 具有递归模板的WPF绑定属性,c#,wpf,xaml,treeview,2-way-object-databinding,C#,Wpf,Xaml,Treeview,2 Way Object Databinding,我通过树状视图展示了一个树状结构。因为不知道树有多深,所以我使用递归HierarchycalDataTemplate 在下面的代码中,我将数据绑定到外部对象树 public class Tree : ObservableCollection<Node> {} 公共类树:ObservableCollection{} 这很好: <TreeView ItemsSource="{Binding Source={StaticResource Tree}}"> <T
public class Tree : ObservableCollection<Node> {}
公共类树:ObservableCollection{}
这很好:
<TreeView ItemsSource="{Binding Source={StaticResource Tree}}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type src:Node}" ItemsSource="{Binding Path=Children}">
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
但是当我试图绑定到一个属性时
public ObservableCollection<Node> LocalTree{
get;
set;
}
public observetecollection LocalTree{
得到;
设置
}
将XAML的第一行更改为
<TreeView ItemsSource="{Binding LocalTree}">
树景是空的。
我做错了什么?可能不是将ObservableCollection树放在“public ObservableCollection LocalTree”中,树对象仅用于测试目的,没有其他用途,即我真的对显示ObservableCollection感兴趣;属性LocalTree表示1级子级。您已将
{Binding Source={StaticResource Tree}}
更改为{Binding LocalTree}
。为什么不{Binding Source={StaticResource LocalTree}}
?可能是绑定错误?{binding Source={StaticResource XXX}}是绑定到外部对象的一种方法。在我的项目中,我有其他使用TreeView的实例,其中我有通过ItemsSource=“{Binding XXX}”直接绑定到的属性,并且一切正常。因此,如果您将LocalTree
的类型从您的C#code更改为有问题的observateCollection
到Tree
,它可以工作吗?难以置信:)