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

DataGridViewComboBoxCell绑定 - "值无效"

如何解决《DataGridViewComboBoxCell绑定-"值无效"》经验,为你挑选了2个好方法。

我正在尝试将DataGridView中的单独ComboBox单元绑定到自定义类,并继续收到错误

DataGridViewComboBoxCell值无效

我现在正在将单元格的数据源分配给IList我所拥有的词典.但是,在设置数据源时,ComboBoxCell未设置索引,因此选择了无效值.

我试图弄清楚如何让它选择一个真正的值,例如列表中的第0个项目,它已被删除此错误,或找到解决问题的另一种方法.有人有什么建议吗?



1> Ian..:

在发布问题后不久,我设法找到了解决方案.对于其他任何人:

问题是我试图将DataGridViewComboBoxCell.Value一个对象分配给一个对象,期望因为Cell被绑定到一个数据源,它会自动在源中找到对象并进行更新.

实际上并非如此,您实际上需要将值设置为等于ValueMember属性的值才能正确更新值和绑定.我相信我正在为两者使用属性'Name' ValueMemberDisplayMember(控制在单元格中呈现的方式),因此将Value设置为interface.ToString()(而不是接口实例)适用于大多数情况.然后我捕获并忽略在我更改源时发生的任何DataError异常.


对于遇到这种情况的任何其他人来说,你的意思是ValueMember属性需要等于单元格值 - DisplayMember是你想要看到的相应字段

2> Sauleil..:

这是使用枚举时的简单解决方案

ColumnType.ValueType = typeof (MyEnum);
ColumnType.DataSource = Enum.GetValues(typeof (MyEnum));

你可以在"InitializeComponent();"之后做到这一点.

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