2014-02-10 43 views
0

我有一個問題,其中LookUpEdit的值沒有更新DataBindings添加了DataSource。我所做的是,我有LookUpEdit控制窗體和id設置LookUpEdit的數據源,值和DisplayMember。然後我說DataBindings與第二BindingSource的其中LookUpEdit更改值在這第二BindingSource的更新:LookUpEdit當綁定到兩個BindingSource不起作用

BindingSource bindingSource1 = // here i get IQueryable 
BindingSource bindingSource2 = // here i get IQueryable where one field from bindingSource1 is set as foreign key 

lookUpEdit1.Properties.DataSource = bindingSource1. 
lookUpEdit1.Properties.ValueMember = "Id"; 
lookUpEdit1.Properties.DisplayMember = "Name"; 

lookUpEdit1.DataBindings.Add("EditValue", bindingSource2, "fk_id", true,  DataSourceUpdateMode.OnPropertyChanged); 

有時候我System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException was unhandled too。第二個BindingSource被設置爲GridControl的數據源,即GridView。

+0

您是否試圖在選擇此下拉列表之前,通過用戶完成的選擇過濾下拉列表的內容? – Stig

+0

不,我擁有的是作爲DataSource具有bindingSource2的GridControl。我的表單在左側有LookUpEdit控件,在左側有GridControl。因此,當用戶更改表中的行時,lookUpEdit中的值也會更改。但是當我在LookUpEdit中改變值時,表中的值沒有改變,或者我得到了上面的異常。這是否可能,如果沒有,請告訴我,我該怎麼做。 – jerac102

+0

我注意到bindingSource2更新,只要我不選擇GridView中的另一行,比我得到ForeignKeyReferenceAlreadyHasValueException。 – jerac102

回答

0

set gridView1.OptionsBehavior.CacheValuesOnRowUpdating = CacheRowValuesMode.Disabled。