我有一个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没有更新以反映对列表所做的更改。
答案 0 :(得分:2)
尝试将treelist设为ObservableCollection。
答案 1 :(得分:0)
请检查您设置为DataContext的treeList的类型。它必须是一个ObservableCollection才能在UI中反映您的集合更改
或者为了快速解决方法,只需在填充List后再次设置DataContext。