这里有一个小故事。我有一个(typeof(ObservableCollection<Area>))
绑定树视图的公共属性。我想更新树,但我不想重绘整个事物并丢失所选项目、节点的折叠/展开状态以及我忘记实现的任何其他内容。所以我想我需要更新集合中的区域。我注意到使用 FirstOrDefault 语句并将其设置为等于某些值实际上并不会更改可观察集合中的区域:
var areas = GetAreaInfo(); //Entity Framework query returns ObservableCollection<Area>
foreach (Area a in areas)
{
var αrea = Areas.FirstOrDefault(α => α.Id == a.Id);
if (αrea != null)
αrea = a; //αrea changes, but Area[0] which is supposed to be αrea doesn't
}
我可以获取对象的引用或指针,这样我就不必遍历可观察集合并使用索引吗?