2011-02-01 11 views
0

を更新しません: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(); 
} 

List<string>は、私がまだ実装していない、より意味のあるデータクラスのための現時点では単なるプレースホルダです。しかし、今私はリストに加えられた変更を反映するためにTreeViewが更新されない理由を知る必要があります。

答えて

2

トレネルリストをObservableCollectionにしてみてください。

+0

ありがとうございます!私はなぜそれが動作するかわからないが、それはありません! – FlyingStreudel

+0

観測可能なコレクションは、UIオブジェクトが更新されたときにUIオブジェクトにそれが更新されるように指示します。 – gmn

0

DataContextとして設定したtreeListのタイプを確認してください。 UIのコレクションの変更を反映するにはObservableCollectionでなければなりません

その他の場合、すぐに回避するには、リストに記入した後にもう一度DataContextを設定してください。

関連する問題