- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
从嵌入在数据 GridView 中的数据 GridView 组合框(下拉菜单)控件中选择新值时,我遇到异常。组合框由 BindingSource 填充,其中填充了我的类的实例。我可以正确显示菜单中的选项并选择一个,但是将焦点更改到新控件(我猜是提交更改)会导致出现异常:从 System.String 到 myclass 的无效转换。堆栈跟踪(如果我正确使用该词)显示源是
System.Windows.Forms.DataGridView.PushFormattedValue级联到System.Convert.DefaultToType
下面是一个更明确的解释(抱歉这么长,但我想让它可以重现):
我有一个名为 Occupant 的空类,没有任何属性(当 Occupant 也有一个字符串 Name 属性时就会出现问题,所以不是那样)。我有一个名为 OccupantSource 的 BindingSource,其 DataSource 指向 Occupant。
我还有一个名为 Car 的类,其中有一个名为 Driver 的 Occupant 属性。
在我的 Form_Load() 中,我调用了两次 OccupantSource.AddNew(),并调用了一次 CarSource.AddNew()。
我有一个DataGridView控件,它的DataSource是CarSource(由Cars组成的BindingSource)。 DGV 有一列,显示 CarSource 中汽车的 Driver 属性。它是一个 DataGridViewComboBoxColumn,DataPropertyName 设置为 driver。
所以我想要的是在 Datagridview 中显示多行汽车,其中一列是一个组合框,我可以下拉并从现有的 Occupant 实例中选择一个司机。但我得到了异常(exception)。
这是我误会了吗?不能使用类的实例来填充 DataGridViewComboBox 吗?
最佳答案
我遇到了完全相同的问题并且摸不着头脑,用我的 google-fu 几个小时试图解决它。这个链接帮助我终于给了我一个很好的解释。 http://www.pcreview.co.uk/forums/datagridview-combobox-column-error-listing-objects-t2344961.html
我修复它的方法是更改 DisplayMember。我在返回“this”的类上引用了“Self”——我将它用于 DisplayMember 和 ValueMember,认为它只是 ToString() 来自 DisplayMember 的属性。
阅读您的解释,您可能根本没有设置 DisplayMember 和 ValueMember?如果是这种情况,请尝试正确设置它们(并且不要为显示成员使用对“this”的引用!)它可能会修复它。
关于C# Winforms DatagridviewCombobox异常字符串无法转换为类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7279987/
我目前有一个 2 列宽的 DataGridView,第一列是 DataGridViewTextBoxColumn,第二列是 DataGridViewComboBoxColumn。我还有一个预生成的通用
我不断收到一条错误消息,指出 DataGridViewComboBox 值无效。好像也是死循环:我点确定,它会不断弹出。我正在运行一个带有用 C# 和 .NET 编写的 Windows 窗体应用程序的
我正在使用 (EditingControlShowing) 事件在 DataGridViewComboBox 列中启用自动完成。 private void dataGridView1_EditingC
如何在运行时更改 DataGridViewComboBoxColumn 的以下内容: 如何将组合框的第一个值设置为默认值? 禁用组合框/将其设为只读,同时显示第一个值作为默认值。意思是说,如果我在组合
我在使用 VisualStudio 2010 C# Winforms 时遇到了一些问题。 我创建了一个带有 DataGridViewComboBoxColumn 类型的未绑定(bind)列的 Data
这个问题在这里已经有了答案: 8年前关闭。 Possible Duplicate: Open dropdown(in a datagrid view) items on a single click
我有一个从 LINQ 查询填充的 DataGridView。其中一列是 FK,因此我添加了一个 ComboBox 列来显示此字段,显示效果很好。 我遇到的问题是它不会让我更改 ComboBox 的值,
我可以easily paint items in DataGridViewComboBox dropdown list .但我无法弄清楚如何在同一列中绘制非事件单元格。 我看过、研究过并尝试过许多经典
我想知道如何设置 DataGridViewComboBox 单元格的值。我已经将 DataGridViewComboBox 与 DataSource 绑定(bind)在一起。但我想为此数据源设置新值。
在我的 DatagridView 中,我有两列,ComboxboxColumn 和 TextboxColumn。我想改变文本框的值当组合框选择索引更改时(一般组合框它选择索引更改事件但 datagri
我在 datagridview ( DataGridViewComboBoxColumn ) 中有一个有界的组合框,并且我想在网格的下一行隐藏该组合框的选定项目 例如: 组合框值是, [value 1
我有一个数据绑定(bind) DataGridView。它的列之一是 DataGridViewComboBox。 DataGridViewComboBox 也是数据绑定(bind)的。一切正常,直到我
为了在此 DatagridViewComboBox 中显示 ReadAccess 枚举成员,我还需要做什么? ReadDataGridViewComboBoxColumn.Items.Clear();
Dim cListItems As New System.Collections.Generic.List(Of Combobox_values) If ds.Tabl
我是 C# 的新手,我真的被卡住了。我会尽量简洁。 我在 DataGridView 中有一些 ComboBox(在同一列中),我希望用户能够在 ComboBox 中键入。我得到它的半工作... *问题
我是一名优秀的程序员,十分优秀!