- - PR -
System.Windows.Forms.Control群のデータバインディングについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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 |
|
投稿日時: 2006-11-25 00:22
TextBoxのValidatingイベントが発生しているか確認してみてください。
「Windows Formの検証機能」について以前まとめたので参考にしてみてください。 http://d.hatena.ne.jp/dotnetmemo/20060702/1151839515 |
|
投稿日時: 2006-11-27 18:08
dotnetmemo様
レスありがとうござます。 Validatingイベントは発生していません。 AutoValidateがDisableになっていたり、CausesValidationがfalseになっていることもありません。 私がテストしたのは、内容を変更したTextBox上にカーソルがある状態でCommandButtonをクリックして確認したので内容を変更したTextBox上にカーソルがある状態ではOnValidationイベントが動作しないと判断しているのですが正しいでしょうか? それとDataSourceUpdateMode.OnPropertyChangedを設定した場合は、TextBoxの内容を変更したら即時BindしたDataTableが即時更新されると解釈してよろしいでしょうか? ご教授お願いします。 |
|
投稿日時: 2006-11-27 18:38
クロスサイトポスト。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
|
投稿日時: 2006-11-27 23:13
問題になっているボタンがツールバーのボタン(ToolStripButton)であれば、Validatingイベントが発生しなかったはずです。明示的にValidate()メソッドを呼び出すようにしてみてください。
#じゃんぬねっとさんありがとうございます。 |
|
投稿日時: 2006-11-30 15:26
dotnetmemoさん
お世話になります。 すいません。現在確認するとValidatingイベントが発生し 問題なく動作しました。依然はToolBarを利用していたので、CommandButtonではなくToolBarで動作確認したのかもしれません。 御指導ありがとうございました。 |
1