我有一个例程,可以解析xml提要中的数据。

    ...

    matches.Add(_item);
}


在此之后不久,我只想包含与我的where子句匹配的项目

if (this.MatchType == FixtureType.Played)
{
    matches = matches.ToList().Where(
        m =>
            m.matchResult == "D"
    ).ToObservableCollection();
}


之后,如果我设置了一个断点,我会发现匹配项现在包含了我要查找的项。

现在的问题是,数据绑定到可观察集合的控件仍然具有初步数据。

最佳答案

问题是在这种情况下有2个ObservableCollection实例


控件绑定到的原始对象
您通过ToObservableCollection调用创建的新文件


为了使新结果显示在控件中,您需要将其重新绑定到新的ObservableCollection实例。那还是修改原始实例的内联。

var results = matches.Where(m => m.matchResult == "D").ToList();
matches.Clear();
foreach (var cur in results) {
  matches.Add(cur);
}

关于c# - 过滤此可观察的集合时,我是否缺少某些内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7598792/

10-13 06:55