博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF中Mvvm实现类似List的ObservableCollection在WPF中
阅读量:5173 次
发布时间:2019-06-13

本文共 1761 字,大约阅读时间需要 5 分钟。

摘自CSDN:

WPF中如果使用ObservableCollection,对ObservableCollection实现类似List的排序操作,再删除以后通知UI层刷新数据

public class SortableObservableCollection
: ObservableCollection
{ public SortableObservableCollection(List
list) : base(list) { } public SortableObservableCollection(IEnumerable
collection) : base(collection) { } public void Sort
(Func
keySelector, System.ComponentModel.ListSortDirection direction) { switch (direction) { case System.ComponentModel.ListSortDirection.Ascending: { ApplySort(Items.OrderBy(keySelector)); break; } case System.ComponentModel.ListSortDirection.Descending: { ApplySort(Items.OrderByDescending(keySelector)); break; } } } public void Sort
(Func
keySelector, IComparer
comparer) { ApplySort(Items.OrderBy(keySelector, comparer)); } private void ApplySort(IEnumerable
sortedItems) { var sortedItemsList = sortedItems.ToList(); foreach (var item in sortedItemsList) { Move(IndexOf(item), sortedItemsList.IndexOf(item)); } }}

 使用集合分组:

//sort ascendingMySortableList.Sort(x => x.Name, ListSortDirection.Ascending);//sort descendingMySortableList.Sort(x => x.Name, ListSortDirection.Descending);

 如果你想实现类似数据源使用分组后对UI 层的通知可以参照:

string header = "HeaderName";            ListSortDirection direction;                        direction = ListSortDirection.Descending;            ICollectionView dataView = CollectionViewSource.GetDefaultView(lv.ItemsSource);            dataView.SortDescriptions.Clear();            SortDescription sd = new SortDescription(header, direction);            dataView.SortDescriptions.Add(sd);            dataView.Refresh();

 

转载于:https://www.cnblogs.com/qdsbird/archive/2013/04/24/3040551.html

你可能感兴趣的文章
ArcGIS REST 缓存清除(地图空白不显示的问题 )
查看>>
第0次作业
查看>>
"类" 库添加继承
查看>>
ucos在s3c2410上运行过程整体剖析之基础知识-与UCOS运行有关的ARM9芯片知识--续 ...
查看>>
存储器的寻址问题 分类: 计算机组成原理 2011-...
查看>>
DDRmenu(翻译)
查看>>
atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7
查看>>
Atitit 架构的原则attilax总结
查看>>
和讯网包容且务实
查看>>
ASP.Net之数据绑定
查看>>
Android自动化测试第三季第二讲Toast控件文字获取
查看>>
Google Analytics的能与不能
查看>>
Ubuntu 基本操作
查看>>
JAVA数组的定义及用法
查看>>
18寒假第七测
查看>>
帧中继
查看>>
105:MyBatis常见实用面试题整理
查看>>
Base on QC Automation Framework v1.0
查看>>
bzoj 3261: 最大异或和 (可持久化trie树)
查看>>
UVA 11440 Help Tomisu
查看>>