次のコードに問題があります。
AllAgents.CollectionChanged += (sender, e) =>
{
if (e.Action != NotifyCollectionChangedAction.Remove) return;
foreach (var s in AllSnapshots)
{
foreach (var stat in s.Stats.Where(stat => stat.Model.Agent == null))
s.Stats.Remove(stat);
}
};
もちろん、これは「コレクションが変更されました。列挙操作が実行されない可能性があります」をスローします。私にとって完全に理にかなっている例外。問題は、Model.Agent プロパティが null であるすべてのアイテムを ObservableCollection から削除するための最良の方法は何ですか? 私は他のソリューションにもオープンです。基本的に、Agent が AllAgents コレクションから削除された場合、その Agent を参照していた AllSnapshots.Stats コレクションからすべてのエントリを削除する必要があります。