- PR -

System.Windows.Forms.Control群のデータバインディングについて

1
投稿者投稿内容
Hiro
常連さん
会議室デビュー日: 2003/08/26
投稿数: 28
投稿日時: 2006-11-24 18:38
Hiroといいます。
いつもお世話になります。
Windows Controlへデータバインディングされた場合のDataTableの挙動について
教えて下さい。
現在、以下の構成にて開発しております。
==================
DataTable
-- Field1 char
-- Field2 char
==================
Form
TextBox1 -- Filed1をDataSourceUpdateMode.OnValidationでバインド
TextBox2 -- Field2をDataSourceUpdateMode.OnValidationバインド
Button
===================
上記にてTextBoxの内容を変更してButtonイベントにて
DataTableを確認するとTextBoxにて変更された内容が
DataTableに反映されていませんでした。
よって、更新モードをDataSourceUpdateMode.OnPropertyChanged
に変更して再度試してみるとTextBoxでの内容の変更が
DataTableに反映されていました。
そこで、教えていただきたいのですが、
バインド時の更新モードで、OnPropertyChangedを使うということは
TextBoxでの変更内容がDataTableに即時反映されるという認識でよろしいのでしょうか?
又、バインド時の更新モードがDataSourceUpdateMode.OnValidationの場合に
TextBoxの内容がDataTableに反映されない理由として何が考えられるのでしょうか?
申し訳ありませんが、ご教授願います。

開発環境 VS2005(C#) + WinXP Sp2
dotnetmemo
常連さん
会議室デビュー日: 2006/04/29
投稿数: 24
投稿日時: 2006-11-25 00:22
TextBoxのValidatingイベントが発生しているか確認してみてください。

「Windows Formの検証機能」について以前まとめたので参考にしてみてください。
http://d.hatena.ne.jp/dotnetmemo/20060702/1151839515
Hiro
常連さん
会議室デビュー日: 2003/08/26
投稿数: 28
投稿日時: 2006-11-27 18:08
dotnetmemo様
レスありがとうござます。

Validatingイベントは発生していません。
AutoValidateがDisableになっていたり、CausesValidationがfalseになっていることもありません。

私がテストしたのは、内容を変更したTextBox上にカーソルがある状態でCommandButtonをクリックして確認したので内容を変更したTextBox上にカーソルがある状態ではOnValidationイベントが動作しないと判断しているのですが正しいでしょうか?

それとDataSourceUpdateMode.OnPropertyChangedを設定した場合は、TextBoxの内容を変更したら即時BindしたDataTableが即時更新されると解釈してよろしいでしょうか?

ご教授お願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-27 18:38
クロスサイトポスト。情報の共有のため、リンクします。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
dotnetmemo
常連さん
会議室デビュー日: 2006/04/29
投稿数: 24
投稿日時: 2006-11-27 23:13
問題になっているボタンがツールバーのボタン(ToolStripButton)であれば、Validatingイベントが発生しなかったはずです。明示的にValidate()メソッドを呼び出すようにしてみてください。

#じゃんぬねっとさんありがとうございます。
Hiro
常連さん
会議室デビュー日: 2003/08/26
投稿数: 28
投稿日時: 2006-11-30 15:26
dotnetmemoさん
お世話になります。

すいません。現在確認するとValidatingイベントが発生し

問題なく動作しました。依然はToolBarを利用していたので、CommandButtonではなくToolBarで動作確認したのかもしれません。

御指導ありがとうございました。
1

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