Member 13050667 Ответов: 1

C# WPF как сохранить порядок некоторых элементов listviewitems во время сортировки?


Привет гуру и мастерам!

Я ищу решение для следующей проблемы, которая у меня есть:

Представьте себе приложение, подобное файловому менеджеру, где у меня есть список файлов с подробной информацией. (имя - язык - Guid - пользователь и т. д...)

Я могу легко сортировать/изменять эти элементы, но в некоторых редких случаях эти файлы могут иметь срезы (субэлементы) /в основном тот же файл, что и родительский, просто нарезанный на диапазоны/
Что-то вроде этого:

Первый файл | LangCode | Guid | User
Второй файл | LangCode | Guid | User
Третий файл
Третий файл 1-2 | LangCode | Guid | User
Третий файл 3-4 | LangCode | Guid | User
Третий файл 5-6 | LangCode | Guid | User
Четвертый файл | LangCode | Guid | User

И проблема заключается в срезах. Когда я переупорядочиваю, фильтрую listview, эти срезы больше не находятся под родительским документом.

Все эти элементы listviewitems добавляются программно.

Если что-то не ясно, просто дайте мне знать, и я с удовольствием предоставлю дополнительную информацию.

Спасибо! :)

Что я уже пробовал:

Единственное "решение", которого я смог достичь, - это просто не фильтровать файлы...но поскольку это была бы дополнительная функция, я хотел бы как-то это исправить.

Прямо сейчас моя последняя идея состояла в том, чтобы перебрать элементы и, если у него есть подпункты, каким-то образом вставить их после родительского документа. Но, конечно, я не нашел решения и для этого..

1 Ответов

Рейтинг:
2

#realJSOP

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

public string ParentGuid { get; set; }

и только дети могли бы заселить эту собственность. Побочное преимущество - вы даже можете иметь несколько уровней детей в иерархии.

Это позволит вам написать пользовательский код сортировки в вашей коллекции, который будет обрабатывать его для вас. Как может выглядеть эта пользовательская сортировка, я не могу вам сказать.


Member 13050667

Спасибо, но я уже определил их как перечисления типа {File, SliceParent, Slice}, но я все еще не знаю, как добавить и сохранить срезы под родительским элементом. :(