Skip to main content
 首页 » 编程设计

c#之在过滤这个可观察的集合时,我是否遗漏了什么

2024年01月29日28jiqing9006

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

    ... 
 
    matches.Add(_item); 
} 

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

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

在此之后,如果我放置一个断点,我会注意到 matches 现在包含我正在寻找的项目。

现在的问题是数据绑定(bind)到 observablecollection 的控件仍然有初步数据。

请您参考如下方法:

问题是这个场景中有2个ObservableCollection实例

  • 控件绑定(bind)的原始
  • 您使用 ToObservableCollection 调用创建的新对象

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

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