對不起 - 我的問題幾乎與this one相同,但由於它沒有收到可行的答案,我希望別人有一些新的想法。WPF TreeView綁定到ObservableCollection不更新根節點
我具有被綁定到單個類型的層次結構的樹視圖WPF:
public class Entity
{
public string Title { get; set; }
public ObservableCollection<Entity> Children { get; set; }
}
實體類實現INotifyPropertyChanged,但我已經爲了清楚省略了該代碼。
樹視圖綁定到一個ObservableCollection <實體>並且每個實體例如經由其Children屬性公開了一組包含的實體的實例:
<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中。
任何建議,將不勝感激。
感謝, 添
謝謝 - 一個輝煌的分析! – 2010-01-26 12:29:08
哇,這對我有用。爲什麼這種改變會起作用? – 2010-12-09 14:19:20
@Mike在[壞]例子中,他正在創建一個新的實體,從而打破了與原始的綁定。在[良好]例子中,他只是清理並添加項目,但保留原始集合。 – 2012-04-03 08:31:29