WPF中对ListBox、ListView、TreeView等实现数据双向绑定经常会用到ObservableCollection<T> 类。
ObservableCollection<T> 类 表示一个动态数据集合,它是实现了INotifyPropertyChanged 接口的数据集合,在添加项、移除项或刷新整个列表时,此集合将提供通知。如果要实现集合中的某字段或属性发生改变时通知UI刷新界面,我们需要为这些字段或属性实现INotifyPropertyChanged接口,此接口公开CollectionChanged事件,只要基础集合发生更改,都能引发该事件。ObservableCollection<T> 类 的使用可以参考博客:https://www.cnblogs.com/santian/p/4366832.html,这里不做过多讲解。
ObservableCollection没有自带的sort排序功能,而实际使用时我们经常需要对数据集合进行排序后再显示,比如按照ID从小到大排序,或者按照禁用状态排序(可用的排在前面)等等。下面新建一个控制台应用程序SortDemo:
1、新建商品类Goods
//商品类
public class Goods
{
public int Order { get; set; }
public string Name { get; set; }
public bool IsSoldOut { get; set; }
}
2、第一种排序方式
ocGoods = new ObservableCollection<Goods>(ocGoods.OrderByDescending(item => item.IsSoldOut));
程序代码:
static void