2011-02-01 84 views
0

我有一個列表必然會像一個TreeView:WPF數據綁定樹視圖以列表不更新

XAML:

<TreeView Name="browserTree" 
      BorderBrush="DarkSlateGray" 
      BorderThickness="1" 
      Grid.Row="2" 
      Margin="0,3,0,0" 
      ItemsSource="{Binding UpdateSourceTrigger=PropertyChanged}"> 
    <TreeView.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}"/> 
     </DataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView> 

C#:

browserTree.DataContext = treeList; 

我通過更新列表

void QueryChange(string s) 
{ 
    rCM.SetCommand(s); 
    treeList.Clear(); 
    SqlDataReader sr = rCM.ExecuteReader(System.Data.CommandBehavior.Default); 
    while (sr.Read()) 
    { 
     treeList.Add((string)sr["tree_hdr"]); 
    } 
    sr.Close(); 
} 

The List<string>目前只是一個佔位符,用於我尚未實現的更有意義的數據類。但是現在我需要知道爲什麼TreeView沒有更新以反映對列表所做的更改。

回答

2

嘗試將treelist設置爲ObservableCollection。

+0

謝謝先生!我不知道它爲什麼會起作用,但它確實有效! – FlyingStreudel 2011-02-01 21:02:22

0

請檢查您設置爲DataContext的treeList的類型。它必須是一個ObservableCollection才能反映您在UI中的集合更改,或者爲了快速解決方法,只需在填充List之後再次設置DataContext即可。