У меня есть ListBox, который ItemSource связан с CollectionViewSource
. Источник CVS - XmlDataProvider
. Таким образом, ListBox перечисляет все узлы (атрибут name), которые я указал.
Теперь эти узлы имеют атрибуты, и я хочу, чтобы ListBox сортировался по ним.
Проблема в том, что лежащие в основе данные представляют собой xml, каждое значение (атрибуты узла) является строкой, но некоторые значения представляют собой числовые значения. Поскольку сортировка с помощью CollectionViewSource.SortDescriptions.add (...)
будет сортировать эти (строковые) значения в алфавитном порядке, последовательность из 2,10,5 будет отсортирована как 10,2,5 вместо 2,5,10.
Как я могу решить это?
Если решение лежит в пользовательской сортировке ListView, может кто-нибудь дать мне быстрый пример того, как это сделать с помощью базового XmlDocument?
Я думал, что это будет так же просто, как написать класс, который реализует IComparer, но почему-то я заблудился.
Я хотел передать имя атрибута методу, чтобы я мог просто «извлечь» все эти атрибуты из CVS, преобразовать их в float (в данном случае) и отсортировать их стандартными функциями ...
Но я совершенно заблудился от того, как работает эта CustomSort, чтобы быть честным ....
Надеюсь, что это возможно, не отказываясь от XmlDocument, потому что это отчасти дано:)
Привет