0

私のC#WinFormには、バインディングソースとデータグリッドビューがあります。Form_Loadイベントで;

_bsCompany = new BindingSource();
_listOfCompany = CompanyService.GetListCompany();//Gets a listofCompany
_bsCompany.DataSource = _listOfCompany;

dgvCompany.DataSource = _bsCompany;

そして、それをテキストボックスにバインドしました。

txtCompanyID.DataBindings.Add("Text", _bsCompany, "CompanyID");

これは機能しています。グリッドビューでレコードをクリックすると、CompanyIDがテキストボックスに表示されます。

私の質問は、リストから会社の1つを削除すると、バインディングがスタックし、テキストボックスにデータグリッドビューから選択した値が表示されないということです。削除されたアイテムの値は、削除後のテキストボックスにあります。

私は間違っていますか?テキストボックスをクリアして再バインドする必要がありますか?

編集:私はこのようにクリアして再バインドしましたが、同じ問題です。

txtCompanyID.DataBindings.Clear();
txtCompanyID.DataBindings.Add("Text", _bsCompany, "CompanyID");
4

3 に答える 3

0

代わりにこれを試してください。



    txtCompanyID.DataBindings.Add("Text", dgvCompany.DataSource, "CompanyID");

于 2013-03-27T11:42:21.610 に答える
0

OK私はこのようにしました。(私がこれをどのように解決したかで質問を更新するのを忘れました)

_listOfCompany.Remove(company);
_bsCompany.ResetBindings(true);

これにより、コントロールとデータソース間のバインディングがリセットされます

于 2016-02-25T07:55:56.467 に答える
0

代わりにこれを試すことができます

txtCompanyID.DataBindings.Add(new Binding("Text", _bsCompany, "CompanyID"));
于 2017-09-12T01:53:06.970 に答える