Xamarin的Telerik UI?下载30天免费试用

排序

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}

结果如下:

SortDescriptorMVVM

的ListView/Bindable Collections文件夹中可以找到一个如何创建带有SortDescriptor集合的ListView的示例,该集合可以通过MVVM进行控制浏览器应用程序

另请参阅

在本文中
Baidu
map