C# 当项目';s属性被修改

C# 当项目';s属性被修改,c#,observablecollection,C#,Observablecollection,我正在尝试将ObservableCollection的LINQ查询结果绑定到我的UI,我似乎已经让它工作了一半。如果我向ObservableCollection添加一个新项目,我可以引发CollectionChanged并调用属性上的PropertyChanged,它将更新。不幸的是,修改一个项目的属性不会导致CollectionChanged为fire,我也不知道如何使它启动。我尝试过其他人发布的方法,比如“没有运气”。有没有办法强迫收藏品变成火?或者,在这种情况下,我还能走另一条路吗。我宁愿

我正在尝试将
ObservableCollection
的LINQ查询结果绑定到我的UI,我似乎已经让它工作了一半。如果我向
ObservableCollection
添加一个新项目,我可以引发CollectionChanged并调用属性上的PropertyChanged,它将更新。不幸的是,修改一个项目的属性不会导致CollectionChanged为fire,我也不知道如何使它启动。我尝试过其他人发布的方法,比如“没有运气”。有没有办法强迫收藏品变成火?或者,在这种情况下,我还能走另一条路吗。我宁愿不要放弃林克。如有任何建议,将不胜感激

private ObservableCollection<Worker> _workers = new ObservableCollection<Worker>();
public ObservableCollection<Worker> Workers
{
    get { return _workers; }
}
private observetecollection\u workers=new observetecollection();
公职人员
{
获取{return\u workers;}
}

雇佣的公共IEnumerable工人
{
获取{return GameContainer.Game.Workers.Where(w=>w.EmployerID==this.ID);}
}
GameContainer.Game.Workers.CollectionChanged+=工人\u CollectionChanged;
私有void Workers\u CollectionChanged(对象发送方,NotifyCollectionChangedEventArgs e)
{
RaisePropertyChanged(()=>雇佣工人);
}
假设向集合中添加了一个新条目,则此操作有效。如果只修改一个项目(如本例中的Workers'EmployerID),如何实现相同的结果

如果只修改一个项目(如本例中的Workers'EmployerID),如何实现相同的结果

您需要订阅每个辅助进程上更改的属性,并在结果集合上引发相应的
PropertyChanged
事件


但是,另一种选择是使用而不是公开单独的属性。

Worker通过MVVM Light实现可观察对象。。@ReedCopsey我想,OP想要的是自动看到WorkersEmployeerID在WorkersEmployeed集合上的更改(例如或)。我可能需要再次查看
ICollectionView
。我曾经探索过它,但据我回忆,我从未找到一种方法让它自动刷新。我正在寻找一种更“不插手”的方法。但是,如果有办法让
ICollectionView
自动更新/刷新,请告诉我。我会马上换成那个。
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);
}