关于ListBox控件的一个很逗的错误:“设置DataSource属性后无法修改项集合。”
2008-01-04 17:36
519 查看
刚刚在Coding这样一个场景:用户勾选了某个复选框之后,将一个相关的下拉框中的某些项Remove掉。代码很简单就不贴出来了。没想到调试时报了一个“设置DataSource属性后无法修改项集合。”的错误,Google一下,原来是因为该下拉框是通过指定DataSource属性绑定的:
cbBox.DataSource = list;
有人解释说,在winForm程序中,如果这样绑定,是不允许对ListBox的项进行删除操作的。原因是因为这样绑定之后是直接和数据源DataTable相关,改动项会对DataTable造成影响。而解决办法是
1、修改绑定方式,不要直接指定DataSource属性,而是把数据拿出来一个一个添加到ListBox上去,将ListBox和DataTable脱离关系。
2、先把DataTable的对应行删掉,然后acceptchanges()就好了。
我没有查找这个问题的根源,不知道这是不是官方的解释。如果是的话那就太逗了,建议微软给设计该错误的哥们颁发一个“最佳幽默奖”——你焉知我指定DataSource属性就一定绑定到DataTable呢?我动态构造一个IList绑定不行吖?再说了,就算绑定到DataTable,就这样不允许删除ListBox的项也不太好罢。
cbBox.DataSource = list;
有人解释说,在winForm程序中,如果这样绑定,是不允许对ListBox的项进行删除操作的。原因是因为这样绑定之后是直接和数据源DataTable相关,改动项会对DataTable造成影响。而解决办法是
1、修改绑定方式,不要直接指定DataSource属性,而是把数据拿出来一个一个添加到ListBox上去,将ListBox和DataTable脱离关系。
2、先把DataTable的对应行删掉,然后acceptchanges()就好了。
我没有查找这个问题的根源,不知道这是不是官方的解释。如果是的话那就太逗了,建议微软给设计该错误的哥们颁发一个“最佳幽默奖”——你焉知我指定DataSource属性就一定绑定到DataTable呢?我动态构造一个IList绑定不行吖?再说了,就算绑定到DataTable,就这样不允许删除ListBox的项也不太好罢。
相关文章推荐
- 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题
- 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”
- WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题解决方案
- 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题
- C# LIstbox 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题
- ComboBox控件“设置 DataSource 属性后无法修改项集合”的解决
- ComboBox控件 “设置 DataSource 属性后无法修改项集合”
- ComboBox控件“设置 DataSource 属性后无法修改项集合”的解决
- ComboBox插入项(设置 DataSource 属性后无法修改项集合 )
- C# ComboBox控件“设置 DataSource 属性后无法修改项集合”的完美解决方法
- 错误记录--关于foreach,集合已修改;可能无法执行枚举操作
- 解决WinForm中ComboBox控件的“设置"DataSourse”属性后无法修改项集合”以及两个不相关联的ComboxBox控件实现数据列表显示不可实现的问题
- IIS错误:在唯一密钥属性“fileExtension”设置为“.mp4”时,无法添加类型为“mimeMap”的重复集合项
- 配置错误 在唯一密钥属性“fileExtension”设置为“.mp4”时,无法添加类型为“mimeMap”的重复集合项
- IIS错误:在唯一密钥属性“fileExtension”设置为“.mp4”时,无法添加类型为“mimeMap”的重复集合项
- 关于spring结合orm框架时dataSource无法创建的一个错误
- IIS下系统部署,提示错误:在唯一密钥属性“name”设置为“Ajax”时,无法添加类型为“add”的重复集合项
- 配置错误 在唯一密钥属性"value"设置为"Index.aspx"时,无法添加类型为"add"的重复集合项
- IIS错误:在唯一密钥属性“fileExtension”设置为“.mp4”时,无法添加类型为“mimeMap”的重复集合项
- IIS下系统部署,提示错误:在唯一密钥属性“name”设置为“Ajax”时,无法添加类型为“add”的重复集合项