发现是引用赋值错了的原因。
数据结构:
var AllObjects = new ObservableCollection<GridObjects>();
GridObjects包括CreateDate, DailyObjects.
DailyObjects也是一个ObservableCollection<ViewObj>()。
更改某一天的DailyObjects:
先查询:var someDayObject = AllObjects.Single(x=>x.CreateDate = CreateDate).DailyObjects;
更改:someDayObject.add(new ViewObj());
这样无法通知界面更改,改成:
someDayObject = new ObservableCollection(someDayObject);
也不行。
因为DailyObjects的引用没有变化。需要对DailyObjects进行更改:
AllObjects.Single(x=>x.CreateDate = CreateDate).DailyObjects = new ObservableCollection(someDayObject);
更改引用后就没有问题了。