このコードを考えてみましょう:
txtLastModifyUserID.DataBindings.Add("Text", c_bsDataSetSource, "LastModifyUserID");
txtLastModifyUserID.Text = "1234";
ソースを更新できないのはなぜですか?
このコードを考えてみましょう:
txtLastModifyUserID.DataBindings.Add("Text", c_bsDataSetSource, "LastModifyUserID");
txtLastModifyUserID.Text = "1234";
ソースを更新できないのはなぜですか?
DataBindingは通常、コントロールがフォーカスを失い始めるまで値を書き込みません。プログラムでTextBoxを更新しているため、DataBindingは更新するものがあることを認識しません。
コードを記述した方法では、自分でメソッドを呼び出す必要がありWriteValue()
ます(TextBoxにデータバインディングが1つしかない場合)。
txtLastModifyUserID.DataBindings.Add("Text", c_bsDataSetSource, "LastModifyUserID");
txtLastModifyUserID.Text = "1234";
txtLastModifyUserID.DataBindings[0].WriteValue();
OnPropertyChanged
で指定する必要があると思いますDataSourceUpdateMode
。
もうすぐそこにいると思います。バインディングを「テキスト」ではなく「値」に変更するだけです。プログラムでこれを変更する場合、データソースが更新されている限り、人間の目が更新をキャッチする必要があります。また、を指定してくださいDataSourceUpdateMode.OnPropertyChanged
。