2011-02-06 24 views
0

У меня проблема с datagridview.Невозможно отключить сортировку в datagridview

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

Когда я двойной щелчок по сортировке ColumnHeader позволяет.

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

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

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

Это замечательно.

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

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

В я вижу, что это SortGlyphDirection установлен в None и SortMode установлен в NotSortable, так It'couldn't сортировки, но сортирует.

Кто-нибудь знает, почему это так? Это ошибка в 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; 
} 

ответ

Смежные вопросы