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 для того, чтобы установить восходящий и нисходящий

Другие вопросы по тегам