Перейти к содержанию
Fire Monkey от А до Я
  • 0

Cортировка TListView


Bob32

Вопрос

Добрый день!

имеем - Rio 10.3 Community и ListView который отрисовывает элементы базы данных (с помощью onUpdatingObjects);

Далее пытаюсь делать сортировку элементов ListView с помощью вот такого когда:

ListView1.Items.Sort(TComparer<TListViewItem>.Construct(
    function(const ALeft, ARight: TListViewItem): Integer
    begin
      Result:=0;

      if ALeft.Data['Price'].AsInteger<ALeft.Data['Price'].AsInteger then Result:=1
      else Result:=-1;
    end));

 

Программа или виснет, или вылетает по Access violation. (

Что интересно - если сортировать по полю Tag (см код ниже) - все работает.

ListView1.Items.Sort(TComparer<TListViewItem>.Construct(
    function(const ALeft, ARight: TListViewItem): Integer
    begin
      Result:=0;

      if ALeft.Tag<ALeft.Tag then Result:=1
      else Result:=-1;
    end));

Но у меня условие сортировки сложное. все данные в поле Tag я не вставлю (

 

ВАЖНО - .Data['Price'].AsInteger - совершенно точно существует.

Также пробовал искать по FindDrawable - элементы TListItemText, вставленные в onUpdatingObjects и сравнивать их - эффект тот же - или виснет, или access violation.

Сталкивался ли кто с таким? какой совет можете дать, куда рыть?

Спасибо!


 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
7 часов назад, krapotkin сказал:

рыть лучше всего в сторону модели данных

сортировать данные там, и заново выводить в ListView

и нет проблем

Я Вас правильно понял - вы имеете ввиду самому отсортировать свой массив и в таком виде его грузить в ListView?

тоже начинаю к этому склоняться (

а что, разве это такая большая проблема - сортировка элементов внутри ListVew? на эти грабли уже наступали?

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...