当前位置:  开发笔记 > 编程语言 > 正文

将ComboBox绑定到IList并使用SelectedValue

如何解决《将ComboBox绑定到IList并使用SelectedValue》经验,为你挑选了1个好方法。

我有一个ComboBox如下设置,其中KVPListIList(KeyValuePair如果重要的话):

comboBox.DisplayMember = "Value";
comboBox.ValueMember = "Key";
comboBox.DataSource = KVPList;

然后我设置了绑定SelectedValue,绑定到BindingSource(到a DataSet).无论出于何种原因,在显示表单时,组合框始终显示为空白.但是它已正确填充(IList显示的值很好并且可以选择).

现在,我已尽力追踪,看起来最初在绑定时正确设置了SelectedValue,但随后它被重置为某个地方null.我玩过订单的东西也被调用,无济于事.

任何人都可以对此有所了解或建议解决方法吗?

对于记录,在同一个表单上,我ComboBox在同一个表单上有另一个表单,它的SelectedValue绑定是相同的BindingSource.这DataSource是一个DataSet,而不是一个IList,它就像一个魅力.这可能是做出一种选择DataTableIList,但它似乎是一大堆额外的开销; 我是IList从枚举中生成的.



1> lc...:

哎哟.在基本上浪费了半天之后,我已经弄明白了.这对我来说完全是个错误.

KVPList被设置为一个IList的,但数据字段是类型的.从本质上讲,数据绑定会触发,并设置属性.然后,绑定将触发,再次检查.由于是类型,而不是,它不会找到匹配,因此将其设置为null.KeyValuePair<short,string>intSelectedValueDisplayMemberValueMemberSelectedValueValueMembershortint

有趣的东西必须发生在拳击和拆箱,但我太累了,无法理解为什么现在.

我会留下这个问题以防其他人遇到同样的问题.跟踪是很难的,因为我希望它能够尝试强制转换或抛出异常,而不是默默地转为null.毕竟,short并且int都是值类型,最后我检查(int)10 == (short)10保持为真.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有