排序
RadListView可用于对可视化数据进行排序。这可以通过向其添加不同的sortdescriptor来实现SortDescriptors收集。我们的代码附带了两种类型的描述符。
PropertySortDescriptor
您可以根据定义业务项的类的属性值对数据进行排序。这个描述符公开了以下属性:
- PropertyName:定义用于检索排序键的属性的字符串名称。
- 排序方式:指定升序或降序排序。
DelegateSortDescriptor
这个描述符允许你根据一个自定义的键(例如组合了两个或多个属性的复杂表达式)进行排序,而不是受限于单个属性的值。这个描述符公开了以下属性:
- 排序方式:设置排序顺序为升序或降序。
- 比较器:定义内部对象使用的Compare方法IComparer.
例子
下面是一个示例,它将指导你如何在ListView中使用SortDescriptor。
首先,在XAML中定义ListView:
< / telerikDataControls: RadListView >
将以下代码添加到sort类中:
公共排序(){InitializeComponent();这一点。BindingContext = new ViewModel();listView.SortDescriptors。添加(新的telerikk . xamarinforms . datacontrolls . listview . propertyysortdescriptor {PropertyName = "年龄",SortOrder = SortOrder. listview . PropertyName = "年龄",SortOrder = "年龄"。提升});}
在ViewModel类中使用下面的代码片段:
公共类ViewModel{公共ViewModel() {this。Items = GetData();} public ObservableCollection- Items {get;设置;} private static ObservableCollection
- GetData() {var items = new ObservableCollection
- ();物品。Add(new Item {Name = "Tom", Age = 41});物品。添加(new Item {Name = "Anna", Age = 32});物品。添加(new Item {Name = "Peter", Age = 28}); items.Add(new Item { Name = "Teodor", Age = 39 }); items.Add(new Item { Name = "Lorenzo", Age = 25 }); items.Add(new Item { Name = "Andrea", Age = 33 }); items.Add(new Item { Name = "Martin", Age = 36 }); items.Add(new Item { Name = "Alexander", Age = 29 }); items.Add(new Item { Name = "Maria", Age = 22 }); items.Add(new Item { Name = "Elena", Age = 27 }); items.Add(new Item { Name = "Stefano", Age = 44 }); items.Add(new Item { Name = "Jake", Age = 31 }); items.Add(new Item { Name = "Leon", Age = 28 }); return items; } }
创建类Person并添加以下代码:
公共类项目{公共字符串名称{获取;设置;}公共int年龄{获取;设置;}}
下面是数据排序后的结果。
的ListView/Features文件夹中可以找到如何使用SortDescriptor创建ListView的示例浏览器应用程序.
绑定SortDescriptor
目前RadListView的SortDescriptor支持绑定。新的是现在用户可以使用MVVM来控制它。
为了通过MVVM控制描述符集合:
- 创建一个ObservableCollection类型的属性
在你的ViewModel中,它将包含所需的排序描述符:
public ObservableCollection SortDescriptors {get{返回this.sortDescriptors;} set {if (this。sortDescriptors != value){这个。sortDescriptors = value;OnPropertyChanged ();}}}
- 使用OneWayToSource绑定模式,将该属性绑定到RadListView的SortDescriptors属性:
. Row="2" ItemsSource="{绑定项}" SortDescriptors="{绑定SortDescriptors, Mode=OneWayToSource}
结果如下:
的ListView/Bindable Collections文件夹中可以找到一个如何创建带有SortDescriptor集合的ListView的示例,该集合可以通过MVVM进行控制浏览器应用程序.