C# 具有递归模板的WPF绑定属性

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

我通过树状视图展示了一个树状结构。因为不知道树有多深,所以我使用递归HierarchycalDataTemplate

在下面的代码中,我将数据绑定到外部对象树

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
,它可以工作吗?难以置信:)