我正在尝试将一个 LINQ 查询的结果绑定ObservableCollection
到我的 UI,我似乎让它工作了一半。如果我向 中添加新项目ObservableCollection
,我可以引发 CollectionChanged 并在属性上调用 PropertyChanged ,它将更新。不幸的是,修改项目的属性不会导致 CollectionChanged 触发,我不知道如何让它触发。我尝试过其他人发布的方法,例如TrulyObservableColection,但没有成功。有没有办法强制 CollectionChanged 触发?或者在这种情况下我可以采取另一条路线。我宁愿不必放弃 LINQ。任何意见,将不胜感激。
private ObservableCollection<Worker> _workers = new ObservableCollection<Worker>();
public ObservableCollection<Worker> Workers
{
get { return _workers; }
}
public IEnumerable<Worker> WorkersEmployed
{
get { return GameContainer.Game.Workers.Where(w => w.EmployerID == this.ID); }
}
GameContainer.Game.Workers.CollectionChanged += Workers_CollectionChanged;
private void Workers_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
RaisePropertyChanged(() => WorkersEmployed);
}
假设将新条目添加到集合中,这将起作用。当一个项目被简单地修改时(例如本例中的 Workers' EmployerID),我怎样才能达到相同的结果?