关于.net winform ComboBox的DataSource,DisplayMember和ValueMember属性的设置顺序的问题。
2010-03-31 11:28
585 查看
ComboBox的DataSource属性为object类型,但是需要实现IListSource接口的类型。
当把DataTable赋值给该属性后,如果此时没有指定ComboBox的DisplayMember和ValueMember属性的话,
这时获得的ComboBox的SelectValue属性将是System.Data.DataRowView的一个实例。
据此推测DataTable中实现的IListSource接口中的GetList()方法应该返回的是DataTable的
DefaultView,也就是DataView的一个实例是DataRowView的集合。而因为没有指定DisplayMember和ValueMember
属性,所以ComboBox直接把DataView中的每一个DataRowView实例填充到列表中。
这样的话就可能在ComboBox的SelectedIndexChanged事件处理中产生错误。
为了避免这个问题应该先设置DisplayMember和ValueMember属性,然后再设置DataSource属性。
避免先设置DataSource属性。
当把DataTable赋值给该属性后,如果此时没有指定ComboBox的DisplayMember和ValueMember属性的话,
这时获得的ComboBox的SelectValue属性将是System.Data.DataRowView的一个实例。
据此推测DataTable中实现的IListSource接口中的GetList()方法应该返回的是DataTable的
DefaultView,也就是DataView的一个实例是DataRowView的集合。而因为没有指定DisplayMember和ValueMember
属性,所以ComboBox直接把DataView中的每一个DataRowView实例填充到列表中。
这样的话就可能在ComboBox的SelectedIndexChanged事件处理中产生错误。
为了避免这个问题应该先设置DisplayMember和ValueMember属性,然后再设置DataSource属性。
避免先设置DataSource属性。
相关文章推荐
- 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题
- 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题
- C# LIstbox 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题
- 关于.net winform ComboBox数据绑定显示问题
- 解决WinForm中ComboBox控件的“设置"DataSourse”属性后无法修改项集合”以及两个不相关联的ComboxBox控件实现数据列表显示不可实现的问题
- WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题解决方案
- .Net之Winform桌面应用程序中Combobox三级下拉菜单连动问题的解决方案
- 关于.net操作Oracle数据库,parameters参数顺序的问题。
- 关于VC单选按钮不能设置变量以及Group属性的设置问题
- JQuery UI----初次学习(添加关于添加UI包的顺序与dialog属性设置)
- 关于C#设置Form的visible属性隐藏问题
- C# DevExpress WinForm编程 针对一些控件重复度高的属性设置问题的解决方案
- 关于mybatis集成spring时,dataSource设置propertyPlaceholder的问题
- .net 使用Json(),maxJsonLength属性设置的值问题
- 关于ListBox控件的一个很逗的错误:“设置DataSource属性后无法修改项集合。”
- ComboBox控件 “设置 DataSource 属性后无法修改项集合”
- 关于设置IIS目录的属性问题
- ComboBox控件“设置 DataSource 属性后无法修改项集合”的解决
- winform 设置 combobox.text 无法显示问题
- 关于.net winform中,几个同一界面上的控件,Dock顺序和Set to back/front的关系