C# RadGridView SortOrder по возрастанию на ImageColumn - поведение сортировки изображений
Я использую Telerik RadGridView
чтобы показать некоторые вещи, которые я должен быть в состоянии отсортировать. Я создал короткий тестовый пример с одним столбцом изображения. Если пользователь нажимает на ячейку заголовка, он автоматически сортирует по возрастанию и убыванию. Ну, это то, что я думаю, мне нужно. Я заполнил RadGridView
с тремя изображениями, и я назвал эти изображения "a.png", "b.png" и "c.png" ("a.png" - красная пуля, "b.png" - желтая пуля и "c.png" "зеленая пуля") Если я сортирую по возрастанию, это должно выглядеть так:
- красный ("a.png")
- желтый ("b.png")
- зеленый ("c.png")
Но это следующее:
- красный ("a.png")
- зеленый ("c.png")
- желтый ("b.png")
Это не имеет смысла для меня. Вы можете увидеть мой код, в котором я добавляю маркеры здесь:
foreach (string item in list)
{
if (item.Length < 5)
{
bullet = Properties.Resources.a; // red
}
else if (item.Length > 5)
{
bullet = Properties.Resources.b; // yellow
}
else if (item.Length == 5)
{
bullet = Properties.Resources.c; // green
}
radGridView1.Rows.Add(bullet);
}
radGridView1.Columns["imgCol"].SortOrder = RadSortOrder.Ascending;
Итак, мой вопрос:
В зависимости от того, что является RadGridView
сортировка изображений? Я думал, что это имя изображения, но, как вы можете видеть, это не так. Или способ добавления маркеров вызывает проблемы с поведением сортировки?
1 ответ
Чтобы контролировать сортировку, используйте дескриптор сортировки
this.radGridView1.MasterTemplate.EnableSorting = true;
SortDescriptor descriptor = new SortDescriptor();
descriptor.PropertyName = "bullet column name";
descriptor.Direction = ListSortDirection.Ascending;
this.radGridView1.MasterTemplate.SortDescriptors.Add(descriptor);
Поместите это в Sort Command
для того, чтобы установить восходящий и нисходящий