У меня есть список, который я привязал к TreeView. Настройка TreeView.DataContext работает - все отображается правильно. Затем я изменяю список (добавляю в него элемент) и снова устанавливаю TreeView.DataContext (с тем же значением), но дерево не обновляется новыми элементами. Как мне обновить дерево, чтобы обновить?
Это в основном мой код:
public class xItemCollection : ObservableCollection<xItem>
{
}
public class xItem : INotifyPropertyChanged
{
xItemCollection _Items;
string m_Text;
public xItem()
{
_Items = new xItemCollection();
}
public xItemCollection Items {get{return _Items;}}
public string Text {get{return m_Text;} set{m_Text=value;}}
}
class MyProgram
{
xItem m_RootItem;
void UpdateTree()
{
this.RootItem = new xItem();
treeView.DataContext = this;
}
public xItem RootItem
{
get { return m_RootItem;}
set { m_RootItem = value;}
}
}
xaml:
<TreeView Name="Tree" ItemsSource="{Binding Path=RootItem.Items}" >
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Items}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Text}" />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
Добавление элементов в список работает до тех пор, пока дерево не будет отображено в первый раз. После визуализации добавление / удаление элементов не обновляет дерево.