2013-03-25 119 views
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"); 

这是行得通的。当我点击gridview中的任何记录时,CompanyID显示在文本框中。

我的问题是,如果我从列表中删除一个公司,绑定被卡住,文本框不显示从datagridview中选择的值。删除项目的值在删除后的文本框中;

我做错了吗?我需要清除并重新绑定文本框吗?

编辑:我清除并重新绑定像这样,但同样的问题。

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

试试看想意志发生。 – 2013-03-25 09:46:51

回答

0

好的我是这样做的; (忘了更新我是如何解决这个问题)

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

这将重置控件和数据源之间的绑定

0

试试这个。



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

0

你可以试试这个代替

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