这是我的代码:
private class Person
{
private string myName;
private int myValue;
public Person(string name, int value)
{
myName = name;
myValue = value;
}
public override string ToString()
{
return myName;
}
public string Name
{
get { return myName; }
set { myName = value; }
}
public int Value
{
get { return myValue; }
set { myValue = value; }
}
}
我用它来填充 DataGridViewComboBoxCell,如下所示:
myDataGridViewComboBoxCell.ValueMember = "Value";
myDataGridViewComboBoxCell.DisplayMember = "Name";
myDataGridViewComboBoxCell.Items.Add(new Person("blabla", someNumber));
我现在要做的就是选择一个人:
myDataGridViewComboBoxCell.Value = someNumber;
但不断出现“值无效”错误。知道为什么吗? 当我在程序中选择一个项目时,我可以看到正确的值 (someNumber),因此 Display 和 ValueMember 设置正确...
最佳答案
无需添加到 DataGridViewComboBoxColumn.Items
,您需要将 DataGridViewComboBoxColumn.DataSource
设置为人员列表,并设置 DataGridViewComboBoxColumn.ValueType = typeof (人)
。
应该这样做。虽然考虑到您提出这个问题已经两个月了,但您的问题可能已经失去了紧迫感。
关于c# - DataGridViewComboBoxCell 手动设置值,值无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2753687/