0

私は次のようTextBoxに与えた を持ってDataBindingいます:

    txtCompanyAddress.DataBindings.Add("Text", CompanyDetailsDataSet, 
"CompanyDetails.CompanyAddress");

また、以下のようにフォームに BindingManagerBase オブジェクトを追加しました。

protected BindingManagerBase BindingManager
        {
            get
            {
                return this.BindingContext[CompanyDetailsDataSet, "CompanyDetails"];
            }
        }

フォームに変更をキャンセルするキャンセル ボタンがあります。値を更新してtxtCompanyAddressキャンセルを押すと、呼び出しますBindingManager.CancelCurrentEdit();が、テキスト ボックスの値が古い値に変わりません。

これはデータバインディングの問題ですか?

4

2 に答える 2

0
textBox1.DataBinding.Add("Text",ds.Tables[0],"ColumnName")

ここdsで、 は DataSet のオブジェクトであり、[0]はデータセット内のテーブルの数です。手順が複数のテーブルを返す場合、テーブルの名前を 0 の代わりにダブル コードで書き込むことができます...

于 2014-09-06T08:53:01.830 に答える
0

データバインディングが更新されたときにモードを変更する必要があるこの設定では、バインディングは自動的に更新されません

          txtCompanyAddress.DataBindings.Add("Text", CompanyDetailsDataSet,"CompanyDetails.CompanyAddress", true,DataSourceUpdateMode.OnPropertyChanged);

また、あなたCompanyDetailsDataSetは自分のものを投稿していないので、インターフェースを実装していると思いIEditableObjectます。それ以外の場合は、自分でそれを行う必要があり、古い値がキャッシュされて取得されるようにする必要がありますCancelEdit()

于 2013-03-30T12:04:42.477 に答える