我有一个包含 ObservableCollection 的类 SceneNode。我希望整个树都显示出来,但是我似乎无法让它与数据绑定一起使用。如果我只是将根添加到树项中,一切都会完美运行。
class SceneNode
{
public string Name {get;set;}
public ObserveableCollection<SceneNode> ChildrenNodes{get;set;}
....
}
class Scene
{
public SceneNode Nodes{get;set;}
}
所以我将场景绑定到树数据上下文,以下是我的树 xaml
<TreeView MinHeight="250" ItemsSource={Binding Path=Nodes} >
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:SceneNode}" ItemsSource="{Binding Path=ChildSceneNodes, UpdateSourceTrigger=PropertyChanged}">
<TextBlock Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" Margin="0,10,0,10" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
在显示带有树的控件之前,我在幕后绑定了它的数据上下文
sceneTree.Tree.DataContext = theScene;
什么都没有显示,但是如果我不绑定数据
sceneTree.Tree.Items.Add( theScene.Nodes );
树将显示,我可以添加和删除节点,此活动反映在 TreeView 中。