Выборочная сортировка данных - PullRequest
0 голосов
/ 09 февраля 2012

Я использую следующий фрагмент кода для сортировки сетки данных, используя sortOption, который выбирается из выпадающего меню - крайний срок или приоритет.

У меня есть возможность работать с крайним сроком.Тем не менее, я думаю, что приоритетным вариантом является просто сортировка по алфавиту в данный момент, но я хочу, чтобы сначала отображались строки с высоким приоритетом, затем средним, а затем низким в TaskTable (datagridview)

Есть идеи, пожалуйста?

private void sortButton_Click(object sender, EventArgs e)
    {
        string sortOption; // selected sorting method

            sortOption = sortComboBox.Text;

            switch (sortOption)
            {
                case "Deadline":
                    TaskTable.Sort(TaskTable.Columns["Deadline"],
                    System.ComponentModel.ListSortDirection.Ascending); // sort by deadline, nearest first.
                    break;
                case "Priority":
                    TaskTable.Sort(TaskTable.Columns["Priority"],
                    System.ComponentModel.ListSortDirection.Ascending); // sort by priority - high, medium, low

                    break;

Ответы [ 3 ]

1 голос
/ 09 февраля 2012

Вы можете добавить дополнительную строку для каждого типа, например, 1, 2, 3, и отсортировать ее по этой строке (скрытая строка). Механически присваивайте номер каждому типу и сортируйте, используя это целое число.

0 голосов
/ 09 февраля 2012

Если это действительно WPF, , то не сортируйте DataGrid, а сортируйте связанные данные, чего обычно гораздо проще достичь.

0 голосов
/ 09 февраля 2012

Итак, значения приоритетов, которые вы определили, это «высокий», «средний» и «низкий»?Если это так, вы должны определить хеш-таблицу, новую структуру или что-то в этом роде, чтобы пользователи могли получать такие значения, как «высокий», «средний» и т. Д., Но чтобы убедиться, что они отсортированы правильно (в алфавитном порядке, то есть в зависимости от фактического гексазначение).

высокая 1 средняя 2 низкая 3

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...