DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridのインデックスに対応するDataTableのインデックス

環境/言語:[Win2000 VS.NET2003 ウィンドウズアプリ C#]
分類:[.NET]

お世話になります。
DataGridのインデックスに対応するDataTableのインデックスを求めたいです。
DataGrid1とDataTable1が関連しているとして、
以下のようにやると選択行の更新が出来ますが、
ある列でソートされている時はインデックスが食い違う為、
選択されている行以外の行が更新されてしまいます。
よろしくお願いします。

int nIndex = DataGrid1.CurrentRowIndex;
string[] szRow = new string[2];
szRow[0] = "...";
szRow[1] = "...";
DataTable1.Rows[ nIndex ].ItemArray = szRow;
(private CurrencyManager  cman;が前提で。)

DataTableとのバインド後に、
cman=(CurrencyManager)(this.dataGrid1.BindingContext[this.dataGrid1.DataSource]);
としておけば、

DataRow drow=(DataRow)(cman.Current);
とすることで、this.dataGrid1でカレントになっている行にアクセスできます。
(drow.ItemArray=....)
こど。さん ありがとうございました。
無事解決しました。
ただcman.CurrentはDataRowView型なので、
次のようにする必要があるみたいです。


DataRowView drv = ( DataRowView )( cman.Current );
drv.Row.ItemArray = ...;
解決済み!
ごめんなさい。
cman.Current はObject型ですがDataRowへ
キャストすると例外が発生します。
ですので、上のようにする必要があるみたいです。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板