UltraGrid的Row,通过BindingSource,给ComboBox修改,修改后,内容无法即时反馈给UltraGrid的bug...
使用UltraGrid,選中當前Row,把Row的BindingSource給ComboBox修改。當ComboBox的Text第一次修改后,UltraGrid的Row里未能立即反應出該更改。
?
通過觀察,如果此時更改其他控件的值,或者此ComboBox多選擇幾次,就可以實現更改。我這里是通過前者進行的修改。
假設還有一個TextBox,也綁定到該BindingSource上,則:
private void ComboBox_ValueChanged(object sender, EventArgs e)//這個方法是ComboBox的ValueChanged的處理事件 {this.ComboBox.ValueChanged -= this.ComboBox_ValueChanged;string saveValue = this.ComboBox.Text;this.BugFix_ForceNotificeDataSource_DataChange();//關鍵this.ComboBox.Text = saveValue;this.BindingSource.EndEdit();this.ComboBox.ValueChanged += this.ComboBox_ValueChanged; }private void BugFix_ForceNotificeDataSource_DataChange() {string valueSaved = this.TextBox.Text;this.ComboBox.Text = "Temp";this.ComboBox.Text = valueSaved; }?
如果你的界面上沒有這個額外的TextBox,那么,可以把“BugFix_ForceNotificeDataSource_DataChange”的內容,修改為:
1.獲取當前ComboBox的Text的內容,在ComboBox的下拉菜單的位置,假設為indexPosA。
2.讓ComboBox選擇(SelectIndex)一個不是indexPosA并且屬于ComboBox下拉菜單的Count范圍內的值。
3.把ComboBox的SelectIndex還原為indexPosA。
顯然,這種方法有一個缺陷,那就是,如果ComboBox的下拉菜單沒有內容,或者只有1個內容,則這個方法無效。
轉載于:https://www.cnblogs.com/xxxteam/archive/2013/02/17/2915026.html
總結
以上是生活随笔為你收集整理的UltraGrid的Row,通过BindingSource,给ComboBox修改,修改后,内容无法即时反馈给UltraGrid的bug...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息称微软今年晚些时候将推出 Win11
- 下一篇: 智能DNS解析之edns-client-