51005


お世話になります。

いつも初歩的な質問で申し訳ありません。

.Netで使用できるDataGridViewで、カラム名をクリックすると自動でソートをして  
くれますが、これは一度に一つしか有効にならないのでしょうか？

つまり、A,Bという2つのフィールドがあって、B,Aの順でカラム名をクリックすれば、  
Aでソートをかけ、Aの値が同じものの中でBのソートが行われる…といったことをしたいと  
思うのですが、そういった機能はありますでしょうか？

SQLでなら、ORDER BY A ASC,B ASC等のような感じです。

プロパティの設定だけでできるのであれば、ぜひそうしたいのですが、  
ありますでしょぅか？

よろしくお願いいたします。


CC BY-SA 4.0
2018-12-07T07:05:46.463
50998
2018-12-07T14:42:57.290
2018-12-07T14:42:57.290
76
9374
question
c#
DataGridViewのソート機能について


ソート機能のカスタマイズが出来るようです。

[DataGridViewで、複数カラムでソート](https://dobon.net/vb/bbs/log3-22/13851.html)

> NET2.0のDataGridViewについて、カラムヘッダをクリックすることにより  
>  ソートができますが、ソート対象のカラムを複数指定できるか調査しています。  
>  今のところ、そのような記述は見あたらなく、DataGridView.SortedColumnプロパティが単数なので、できなさそうと思っていますが、  
>  この辺りの情報お持ちの方いらっしゃったら教えてください。
>
>
> ちなみにGrapCity社のNetAdvantageという製品のGridは、シフトキーを押しながらカラムヘッダをクリックすることによって複数指定できることが分かっています。  
>  それと同等のことがしたいのですが。。

[方法 : Windows フォーム DataGridView
コントロールの並べ替え機能をカスタマイズする](https://docs.microsoft.com/ja-
jp/dotnet/framework/winforms/controls/how-to-customize-sorting-in-the-windows-
forms-datagridview-control)

>
> System.Collections.IComparerを実装したクラスを用意してCompareメソッドに比較するロジック（この場合だと複数カラムを使った比較）を実装して、それをDataGridView.Sort()に渡すようにすればよい、と理解しました。
>
> 全自動ではできないが、ソートのカスタマイズの機構があるので、簡単なプログラミングすることにより実現可能ですね。


CC BY-SA 4.0
2018-12-07T11:12:28.927
51005
2018-12-07T11:12:28.927
26370
50998
answer