Невозможно отключить сортировку в datagridview - PullRequest
0 голосов
/ 06 февраля 2011

У меня проблема с datagridview.

При запуске я отключил сортировку в столбце (dictionaryDataGridView_ColumnAdded и в конструкторе)

При двойном щелчке по заголовку столбца включается сортировка.

И это работает.

Когда я снова дважды щелкаю при отключении заголовка столбца.

И когда я проверяю SortMode этого столбца NotSortable.

Это здорово.

Но, когда я теперь изменяю значение в строке, он сортирует мой столбец.

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

В dictionaryDataGridView_CellEndEdit я вижу, что для SortGlyphDirection установлено значение None, а для SortMode установлено значение NotSortable, так что сортировать нельзя, но сортирует.

Кто-нибудь знает, почему это? Это ошибка в datagridview, или я что-то пропустил?

private void dictionaryDataGridView_ColumnHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.ColumnIndex == 0)
    {
        var column = dictionaryDataGridView.Columns[e.ColumnIndex];
        if (column.SortMode != DataGridViewColumnSortMode.Programmatic)
        {

            column.SortMode = DataGridViewColumnSortMode.Programmatic;
            dictionaryDataGridView.Sort(this.dictionaryDataGridView.Columns[0], ListSortDirection.Ascending);
            this.dictionaryDataGridView.Columns[0].SortMode = DataGridViewColumnSortMode.Programmatic;
            this.dictionaryDataGridView.Columns[0].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
        }
        else
        {
            column.SortMode = DataGridViewColumnSortMode.NotSortable;
        }
    }
}

private void dictionaryDataGridView_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
{
    e.Column.SortMode = DataGridViewColumnSortMode.NotSortable;
}

private void dictionaryDataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    var aaa = this.dictionaryDataGridView.Columns[0].HeaderCell.SortGlyphDirection;
}

1 Ответ

0 голосов
/ 08 февраля 2011

Хорошо, я нашел ответ.Это невозможно сделать:

http://www.windowsdevelop.com/windows-forms-data-controls-databinding/datagridview-how-to-stop--cancel-sorting-26732.shtml

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