gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:36:54 25 4
gpt4 key购买 nike

我有一个 Telerik ComboBox:

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

我正在执行“foreach”循环来将项目存储到其中:

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);
}
}

我想对组合框中的项目进行排序(例如从 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 .

鉴于此,有两种最常见的方法。

我。利用现有的 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(...))
{
...
}

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

关于c# - 无法访问 Telerik 中的 Sort 属性 :RadComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33123504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com