WPF数据绑定树视图到列表不更新

时间:2011-02-01 20:52:09

标签: c# wpf data-binding

我有一个List绑定到TreeView,如:

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 个答案:

答案 0 :(得分:2)

尝试将treelist设为ObservableCollection。

答案 1 :(得分:0)

请检查您设置为DataContext的treeList的类型。它必须是一个ObservableCollection才能在UI中反映您的集合更改

或者为了快速解决方法,只需在填充List后再次设置DataContext。