2011-02-01 4 views
0

를 업데이트하지 않습니다WPF 데이터 바인딩 트 리뷰 I는 목록과 같은 트 리뷰에 바인딩 한

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에 알려서 UI 개체가 자체적으로 업데이트 할 수 있도록합니다. – gmn

0

DataContext로 설정 한 treeList 유형을 확인하십시오. UI에서 컬렉션 변경 내용을 반영하기 위해서는 ObservableCollection이어야합니다.

또는 빠른 해결 방법은 목록 채우기 후에 다시 DataContext를 설정하는 것입니다.