我有一个小组项目。然后,组项目中的每个组,我把它放入列表视图
var Groups = query.GroupBy(query => query.Name);
foreach (var group in Groups)
{
if (group.records.Count() > 2)
{
ListView listview = new ListView();
var itemsource = new ObservableCollection<FileProperties>();
var header = "";
foreach (var item in group.records)
{
header = item.Name;
itemsource.Add(new FileProperties(item.Name, item.Size, item.DateModified, item.Hash, item.Path, item.IsOrigin));
}
listview.ItemsSource = itemsource;
var itemsTemplate = (DataTemplate)this.Resources["Show"];
listview.ItemTemplate = itemsTemplate;
//test is mother listview
test.Items.Add(listview);
}
}
现在,我有一个问题,如果我在没有重置母亲列表视图的情况下更改组项目中的值,我该如何更新listview用户界面
答案 0 :(得分:1)
可以使用CollectionViewSource对默认ListView
进行分组。无需为父ListView
的每个组创建子ListView
。
My answer here显示如何创建分组ListView
,您可以查看一下。或者在互联网上有一堆演示,你可以用谷歌搜索它们。
但最重要的一点是,通过使用默认分组ListView
,我们可以简单地为整个ListView
创建一个数据集合,修改项目源集合以自动更新分组的子项,我们不再需要为每个组创建ObservableCollection
个。