我有一個列表,我綁定到一個TreeView。設置TreeView.DataContext的工作原理 - 一切正常顯示。然後我改變列表(向它添加一個項目)並再次設置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>
添加項目到列表中工作,直到樹呈現的第一次。渲染後,添加/刪除項目不刷新樹。
什麼是你的代碼中的「this」?那麼XAML方面是怎樣的呢?你是否將你的hierarchicaldatatemplate設置爲正確的? – 2010-05-31 23:48:18
也許RootItem必須是DependencyProperty? – 2010-06-02 23:06:13
因此,在您的UpdateTree方法中,如果在末尾添加: RootItem.Items.Add(new xItem {Text =「new Subitem」}); 它不會顯示? – 2010-06-11 10:36:01