对不起 - 我的问题几乎与这个问题相同,但由于它没有得到可行的答案,我希望其他人有些新的想法。
我有一个绑定到单个类型层次结构的WPF TreeView:
public class Entity
{
public string Title { get; set; }
public ObservableCollection<Entity> Children { get; set; }
}
为了清晰明了,我省略了实现INotifyPropertyChanged的代码。
TreeView绑定到一个ObservableCollection<Entity>,每个Entity实例通过其Children属性公开一组包含的Entity实例:
<TreeView ItemsSource="{Binding Path=Entities}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:Entity}" ItemsSource="{Binding Path=Children}">
<TextBlock Text="{Binding Path=Title}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
TreeView最初绑定预期,正确显示多级层次结构。当其中一个Children集合的成员资格在程序中进行修改时,TreeView也会正确地反映出这些更改。
但是,对根成员级别的ObservableCollection<Entity>的成员资格进行更改不会在TreeView中反映出来。
欢迎提供建议。
谢谢, Tim