- - PR -
[VS.NET2005][C#]バインドしているDataGridViewに対し、CurrentRowの次行に行挿入をしたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-02-08 14:36
【環境】
OS:WindowsXPPro VS:VS.NET2005 言語:C# AP:Windowsアプリ ここ最近、質問ばかりで申し訳ありません。 現在、DataSet(或いはDataView)をバインドしているDataGridViewに対して、CurrentRowの次行に行挿入をしようとしています。 DataGridView上の行番号は「CurrentCell.RowIndex」で取得できるのですが、これではソートやフィルタを行っていた場合に、バインド元の行番号と異なってしまいます。 CurrentRowがバインド元では何行目であったか、調べる方法は無いでしょうか? | ||||
|
投稿日時: 2007-02-08 20:21
「バインド元」ってDataTableのことを指していますか?
でしたら、CurrentRowのDataBoundItemをDataRowViewにキャストして、 そのRowプロパティ(DataRow)を元テーブルのRows.IndexOfに渡す…とかで 求められなくはないと思います。 ただ、それで求めた位置に行挿入してお望みの結果が得られるかは疑問です。 ソートはバインドされているDefaultViewに対してかかりますから、 新しく挿入された行の値に基づき再ソートされてしまうと思います。 | ||||
|
投稿日時: 2007-02-09 08:38
KIさん、こんにちは。
この方法で、欲しい行番号が取得できました。 ご指摘の通り、ソートをかけた状態では、挿入後に結局再ソートされてしまいましたが、DataTableでは挿入したい位置に行を挿入できたので、取り敢えずのところはこれで満足です。 KIさん。有難う御座いました。 |
1