当我将ListBox直接绑定到一个ObservableCollection时,我可以在我的ListBox中实时显示更新情况,但一旦在混合使用其他LINQ方法后,我的ListBox就不再通知任何ObservableCollection的更改。
让我用一个例子来说明:
public partial class MainPage : PhoneApplicationPage
{
ObservableCollection<String> Words = new ObservableCollection<string>();
public MainPage()
{
InitializeComponent();
listBox1.ItemsSource = Words;
}
private void AddButton_Click(object sender, RoutedEventArgs e)
{
Words.Add(DateTime.Now.ToString());
}
}
在这里,我将一个按钮和一个列表框添加到一个简单的页面中,点击按钮会使新的项目立即出现在列表框中。
然而,如果我从...
listBox1.ItemsSource = Words;
to
listBox1.ItemsSource = Words.Where(w => w.Contains(":"));
ListBox 不再更新。
我如何在 ObservableCollection 和 ListBox 之间添加“过滤器”,并仍然使其在不必设置 .ItemsSource 的情况下更新?