DataGridViewに並べ替えを停止するように指示する適切な方法は何ですか?
プログラムで4列目と昇順で並べ替えるようにグリッドに指示する「画面」があります。別のエリアに切り替えるとき、同じグリッドを「デフォルト」/ソートなしで表示したいと思います。すべての列を削除して、新しい列を追加しています。並べ替えは4列目に残ります。
Sort()メソッドでこれを行う方法がわかりません。何か案は?
DataGridViewに並べ替えを停止するように指示する適切な方法は何ですか?
プログラムで4列目と昇順で並べ替えるようにグリッドに指示する「画面」があります。別のエリアに切り替えるとき、同じグリッドを「デフォルト」/ソートなしで表示したいと思います。すべての列を削除して、新しい列を追加しています。並べ替えは4列目に残ります。
Sort()メソッドでこれを行う方法がわかりません。何か案は?
BindingSource の並べ替えに直接アクセスしました。
((BindingSource)_dgv.DataSource).Sort = string.Empty;
MSN フォーラムから:
DataGridView はテーブルではなく DataView に直接バインドされるため、次のように設定する必要があります。
DataTable.DefaultView.Sort = String.Empty
テーブルの並べ替えを効果的にクリアし、それによってそれにバインドされているグリッドをクリアします。2005 を使用していない限り、これには DataGridView の更新が必要なようで、別のバインディング マネージャーを使用できます。
直接的な答えではありませんが、もちろん「ソートされていない」という適切な定義はありません。ID のような (非表示の) 列で並べ替えることはできませんか?
user2268720からの回答と同じドメインで..最もクリーンなソリューションではありませんが、バインドされていないDGVで私のために仕事をしました:
if (dgv.SortedColumn != null) {
DataGridViewColumn col = dgv.SortedColumn;
col.SortMode = DataGridViewColumnSortMode.NotSortable;
col.SortMode = DataGridViewColumnSortMode.Automatic;
}