2012-05-09 2 views
2

Итак, я сделал приложение, чтобы получить размеры почтового ящика от обмена, однако мне нужна помощь, чтобы сортировка работала хорошо. я привязки данных сетки с моим собственным классом, я использовал решение здесь, чтобы сделать мой список Сортируемым: How to sort databound DataGridView column?Datagrid Сортировка GB, MB, KB, B

но при попытке сортировки размеров почтовых ящиков не делает это, как я хочу его, пожалуйста, может кто-то дать мне некоторое представление на этом ? Прямо сейчас я разделил часть MB и размер (двойной) на 2 разных столбца. Любая идея - welcom. enter image description here

На скриншоте проблема не видна, однако я хотел бы только ГБ на вершине, однако конец ЕП в на верхней причине его легко иметь 200MB вместо 200GB в вашем почтовом ящике.

+0

Ваша проблема в том, что всякая реализация «CompareTo», которую вы придумали, используется в строке «10 , 8 ГБ ", а не на базовом значении, поэтому вы будете сортировать свои записи в алфавитном порядке. Вы должны настроить свой пользовательский интерфейс, чтобы «GB» добавлялся только строковым форматом только для отображения, а ваш код сортировки сортирует базовые значения численно. – Alain

+0

Итак, если я понимаю, что вы правы, я должен просто сохранить байтовую сумму (легко получить для меня), где-то где-то сохраненную, и нужно ее сортировать? в этом случае вы могли бы привести мне пример, я бы не знал, как это будет сделано – Kage

+0

Нет, вам не нужно дублировать ваши данные. Если вам нужны примеры решений, вам придется опубликовать свой существующий код для связывания данных с пользовательским интерфейсом, сортировкой и всем остальным. – Alain

ответ

0

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