相关疑难解决方法(0)

过滤ObservableCollection?

当我将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());
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我向一个简单的页面添加了一个Button和一个ListBox,然后单击该按钮使新项目立即出现在ListBox中.

但是,如果我改变了

        listBox1.ItemsSource = Words;
Run Code Online (Sandbox Code Playgroud)

        listBox1.ItemsSource = Words.Where(w => w.Contains(":"));
Run Code Online (Sandbox Code Playgroud)

ListBox不再更新.

如何在我的ObservableCollection和ListBox之间添加"过滤器",并且仍然可以在不必再次设置.ItemsSource的情况下进行更新?

c# linq xaml observablecollection windows-phone-7

12
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

linq ×1

observablecollection ×1

windows-phone-7 ×1

xaml ×1