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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值