因此,尽管在网上找到了文章,我仍然无法弄清楚这一点。
我有一个列表框
<ListBox HorizontalAlignment="Left" Margin="54,35,0,0" Name="resultsbox" VerticalAlignment="Top" Width="382" Visibility="Collapsed">
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding nameElement}"/>
</StackPanel>
</DataTemplate>
</ListBox>
那是数据绑定到
ObservableCollection<string> results = new ObservableCollection<string>();
并更新为
private void searchbox_TextChanged(object sender, TextChangedEventArgs e)
{
resultsbox.Visibility = Visibility.Visible;
resultsbox.ItemsSource = results;
if (results.Count == 0)
{
foreach (ele item in eles)
{
if (!results.Contains(item.nameElement))
{
results.Add(item.nameElement);
}
}
}
else
{
resultsbox.Items.Clear();
}
if (searchbox.Text.Equals(""))
{
window1.Height = 47;
resultsbox.Visibility = Visibility.Collapsed;
}
if (resultsbox.Items.Count == 0)
{
resultsbox.Visibility = Visibility.Collapsed;
window1.Height = 47;
}
else{
window1.Height = 47 + (22 * resultsbox.Items.Count);
}
}
它在那里加载所有数据,但不会更新!
如果我这样做resultsbox.clear()
,则表示您无法清除绑定的项目。如果您尝试清除源,它什么也不做。如果您尝试将结果框 itemsource 设置为 null 并清除源然后重新绑定它,什么都没有。如果您尝试将列表框绑定到一个空源,它什么也不做......