У меня проблема с 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;
}