|
分類:[C#]
分類:[C#]
お世話になります。
ある画面でDataGridViewを使用しています。 列は2列あり1列目はコードで2列目は名称という列名です。
初期表示時はテーブルからデータを取得してDataTableにセットして、 それをBindingSourceオブジェクトのDataSourceプロパティにセットしています。さらにDataGridViewのDataSourceプロパティにそのBindingSourceオブジェクトを セットして行なっています。
これはまあ一連の初期表示処理ですが、問題はここからです。 実はその画面にはコードと名称を入力する2つのテキストボックスと1つの「更新」ボタンがあります。 更新ボタンを押すとDataGridViewで選択されている行のコードと名称を テキストボックスで入力されたコードと名称で更新するという処理です。
現在ソースは以下のようになっています。
// 現在選択されている行を取得する // dgvはDataGridViewオブジェクトです。 BindingManagerBase bm = dgv.BindingContext[dgv.DataSource,dgv.DataMember]; // dtはDataTableオブジェクト // txtCord.Textはコードを入力するテキストボックス // txtName.Textは名称を入力するテキストボックス dt.Rows[bm.Position].ItemArray[0] = txtCord.Text; dt.Rows[bm.Position].ItemArray[1] = txtName.Text; // bsはBindingSourceオブジェクト bs.DataSource = dt; dgv.DataSource = bs;
そこでデバッグで dt.Rows[bm.Position].ItemArray[0] = txtCord.Text; dt.Rows[bm.Position].ItemArray[1] = txtName.Text; を通過した直後、値を確認しても内容が変わりません。
いろいろ調べてみましたがお手上げ状態ですので、どなたかおわかりになる方 教えて下さい。 お手数ですがよろしくお願い致します。
|