2016-11-25 71 views
0

我有一个组项目。随后,各组组项目,我把它改成一个ListView现在UWP - 从后面的代码更新列表视图源代码

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); 
       } 
      } 

,我有一个问题,我如何更新列表视图UI如果我在项目组中更改值,而不重置母亲的ListView

回答

1

的默认ListView可以使用CollectionViewSource分组。没有必要为父母ListView的每个组创建子女ListView

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

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