无法访问telerik:RadComboBox中的Sort属性 - c#

我有一个Telerik组合框:

<telerik:RadComboBox  Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" IsReadOnly="True" SelectedIndex="0" x:Name="CbBoxUltra" SelectionChanged="CbBoxUltra_SelectionChanged" MinWidth="100"/>

我正在做一个“为每个”循环将项目存储到其中:

foreach (var ultra in line2)
{
...
    if (deviceType != null && !String.IsNullOrEmpty(vehicleName) && vehicleName != "null" && deviceType == "ultra")
    {
        _listUltra.Add(new UltraModel { Id = Convert.ToInt32(idUltra), Name = nameUltra, NameVehicle = vehicleName });
        CbBoxUltra.Items.Add(vehicleName);
    }
}

我想对ComboBox中的项目进行排序(例如,从a到z)。
所以我试图做文档中的内容:Telerik's sorting

但是在.xaml中,我无法访问属性“ Sort”,例如像对“ VerticalAlignment”那样,并且我也无法访问.xaml.cs中的属性:

CbBoxUltra.Items.Sort(); //It doesn't match anything here

我可以访问.SortDescription,但这不是我要搜索的内容...

参考方案

根据我从Telerik的文档中收集的信息,Sort属性仅适用于ASP.NET RadComboBox Control(服务器端),而不适用于WPF RadComboBox Control。

鉴于此,有两种最常见的处理方式。

I.利用现有的WPF实施

RadComboBox.Items属性实际上是从ItemsControl继承的。它的类型为ItemCollection,实现ICollectionView,并支持通过SortDescriptions集合进行排序。因此,如果您想按属性值排序,则只需将适当的项目添加到该集合中:

CbBoxUltra.Items.SortDescriptions.Add(new SortDescription
{
    PropertyName = "XXX",
    Direction = ListSortDirection.Descending
});
CbBoxUltra.Items.SortDescriptions.Add(new SortDescription
{
    PropertyName = "YYY",
    Direction = ListSortDirection.Ascending
});

此代码将导致这些项首先按XXX属性按降序排序,然后按YYY属性按升序排序。但是,如果排序逻辑不仅仅需要引用项目属性值,还可以添加一个排序描述,而忽略PropertyName

CbBoxUltra.Items.SortDescriptions.Add(new SortDescription
{
    Direction = ListSortDirection.Descending
});

这将导致排序机制使用项目类型的默认比较器进行排序。为了应用自定义逻辑,请确保您的项目实现IComparable<T>接口。用于string的Ddefault比较器按词法顺序排序。

二。在添加之前对项目进行预排序

如果您仅添加一次项目,则此方法会更容易一些。这是代码摘录:

foreach (var ultra in line2.OrderByDescending(...))
{
    ...
}

请注意,如果您要多次添加项目(例如,在用户输入时),这将变得更加棘手,因为您必须手动在适当的索引处插入项目。

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…

Json到php,json_decode返回NULL - php

我正在用PHP进行JSON解析器的一些API,用于存储有关遗产的信息。我在解析时遇到问题,因为它返回的是NULL值而不是数组或对象。简单的JSON代码可以很好地解析,但是可以这样:{"success":true,"totalCount":1,"data":[{"id":99694…

将ajax的值存储到javascript变量中 - javascript

我有一个php文件,其中我从服务器获取数据。该php文件的输出是一个包含json格式数据的变量。PHP文件:<?php $dbHostName = "localhost"; $dbUserName = "venseld"; $dbUserPass = "wecuuu"; $dbName = &…