Извините, мой вопрос почти идентичен этому , но поскольку он не получил жизнеспособного ответа, я надеюсь, что у кого-то еще есть свежие идеи.
У меня есть WPF TreeView, который связан с иерархией одного типа:
public class Entity
{
public string Title { get; set; }
public ObservableCollection<Entity> Children { get; set; }
}
Класс Entity реализует INotifyPropertyChanged, но для ясности я пропустил этот код.
TreeView привязан к ObservableCollection , и каждый экземпляр Entity предоставляет набор содержащихся экземпляров Entity через свое свойство 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 не отражаются в TreeView.
Любые предложения будут оценены.
Спасибо,
Тим