C# 在不触发完全重新加载的情况下更新Xaml GridView及其源分组数据源

C# 在不触发完全重新加载的情况下更新Xaml GridView及其源分组数据源,c#,xaml,win-universal-app,C#,Xaml,Win Universal App,我有一个SemanticZoom控件和一个嵌入式GridView,它使用CollectionViewSource和issourcegroup=true 分组通过用户控制的下拉列表完成(例如,按颜色、类别或创建日期分组) 这是通过根据下拉更改事件代码创建Linq查询来实现的。大概是这样的: query = new ObservableCollection<IGrouping<object, Book>>(from animal in zoo.animals group bo

我有一个
SemanticZoom
控件和一个嵌入式
GridView
,它使用
CollectionViewSource
issourcegroup=true

分组通过用户控制的下拉列表完成(例如,按颜色、类别或创建日期分组)

这是通过根据下拉更改事件代码创建Linq查询来实现的。大概是这样的:

query = new ObservableCollection<IGrouping<object, Book>>(from animal in zoo.animals group book by new { title = animal.color /* , other = "", things ="" */ });

// ...                                                              

gridDataSource.Source = query;

if (zoomedOutGridView != null)
    zoomedOutGridView.ItemsSource = gridDataSource.View.CollectionGroups;
query=newobservecollection(来自动物园中的动物.animals组,按new{title=animal.color/*,other=”“,things=“”*/});
// ...                                                              
gridDataSource.Source=query;
如果(zoomedOutGridView!=null)
zoomedOutGridView.ItemsSource=gridDataSource.View.CollectionGroups;
问题是,当我添加新项时,我必须重新发出查询,这将重新加载整个视图。这对于一个项目来说很烦人,但有时我需要在一个批次中添加10个项目,这对于UI体验来说是完全不可接受的

(此外,我希望避免在一次大规模更新中将它们聚集在一起,而是让用户在项目准备就绪时一个接一个地显示项目的过程中不断更新)

我尝试了几种方法,但基本问题似乎是,
I分组
不仅是抽象的,而且是不可变的。虽然我可以检索新对象应该属于的分组,但我不能真正添加到其中

任何见解或技巧将不胜感激