【发布时间】:2011-04-25 19:55:05
【问题描述】:
当我将 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;
到
listBox1.ItemsSource = Words.Where(w => w.Contains(":"));
ListBox 不再更新。
如何在我的 ObservableCollection 和 ListBox 之间添加一个“过滤器”,并且仍然可以更新它而无需再次设置 .ItemsSource?
【问题讨论】:
标签: c# linq xaml windows-phone-7 observablecollection