- PR -

DATAGRIDのソートイベント

1
投稿者投稿内容
adtk
ベテラン
会議室デビュー日: 2004/02/06
投稿数: 75
投稿日時: 2004-04-26 17:25
どなたか知ってみえたら教えてください。

WINDOWSアプリでDATAGRIDの列ヘッダを押してソート処理を行ったときに発生するイベントはあるのでしょうか?

よろしくお願いします。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-04-26 20:13
強いてあげれば、マウスクリックによる、MouseDown, Click, MouseUpかな?

列ヘッダクッリクによるソートの実装はMouseUpのEventArgから、クリック位置を判定し、列ヘッダであれば、ソートを行う。という感じだろうか?

クッリク位置の判定はDataGrid+HitTestInfoを使用します。

もしかしたら、もっと楽な方法があるかもしれません。
adtk
ベテラン
会議室デビュー日: 2004/02/06
投稿数: 75
投稿日時: 2004-04-27 08:14
やっぱり、そういった小細工が必要なのですね。。。
もっと、簡単な方法がどこかにあるはずだと思ったのですが。。。

ありがとうございます。
adtk
ベテラン
会議室デビュー日: 2004/02/06
投稿数: 75
投稿日時: 2004-04-28 08:03
上の方法でいけると思ったのですが、
本当に欲しいのは、ソートの終了時に発生するイベントでした。

ソートメソッドをオーバーライドできると思っていたのですが、どうやらできないようなので。。。
ぞのぞの
会議室デビュー日: 2004/05/10
投稿数: 1
お住まい・勤務地: 秋葉原
投稿日時: 2004-05-10 06:15
初めまして、ぞのぞのと申します。
最近.netのDataSet、DataGrid、Remoting等を色々試しています。

列ヘッダクリックによるソート時には以下の順でイベントが発生します。

DataGrid.Click
ソート実行
BindingContext.CurrentChanged
CurrencyManager.ItemChanged
DataView.ListChanged

Clickイベント時にはソート前の選択行・sort値、その後のイベントでは
ソート後の選択行・sort値を取れます。 ただ、どのイベントも他の状況
でも発生するので、実際に使うには工夫が必要です。

詳細は以下にまとめてありますのでご参考ください。(非常に見辛いので、
実際に動かしてみることをお勧めします)
http://www.campus.ne.jp/~zonozono/hepoko/vsdotnettips.html
1

スキルアップ/キャリアアップ(JOB@IT)