UWP - 从后面的代码更新listview源动态

时间:2016-11-25 06:33:29

标签: c# listview windows-10-universal

我有一个小组项目。然后,组项目中的每个组,我把它放入列表视图

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用户界面

1 个答案:

答案 0 :(得分:1)

可以使用CollectionViewSource对默认ListView进行分组。无需为父ListView的每个组创建子ListView

My answer here显示如何创建分组ListView,您可以查看一下。或者在互联网上有一堆演示,你可以用谷歌搜索它们。

但最重要的一点是,通过使用默认分组ListView,我们可以简单地为整个ListView创建一个数据集合,修改项目源集合以自动更新分组的子项,我们不再需要为每个组创建ObservableCollection个。