我最近问了这个问题on here并得到了答案。不过,我现在尝试在绑定(bind)到 Curriculum 对象的 BindingList< T > 的 DataGridView 上应用相同的逻辑。 Curriculum 类具有 Year 类型的属性。我正在尝试使用 ComboBoxColumn 来更新类(class)对象多年来的引用。
组合框列绑定(bind)到多年的 BindingList
看起来我需要一个 TypeConverter 来做到这一点,但问题是组合框正在显示一个描述性值,我不能保证该值对于该年份对象是唯一的 - 所以我无法获取年份对象来自给定的字符串。
有没有人有过类似情况的经验,这一定是一件很常见的事情,但谷歌这次让我失望了。
马龙
最佳答案
与 here 相同的问题。组合框列中的对象绑定(bind)似乎无法正常工作,您必须指定 ValueMember。
对于我正在从事的特定项目,我得出的结论是不值得实现自定义类型描述符,因此,我使用了一个相当可怕的黑客:
在我绑定(bind)的实体中,我有以下内容:
class TestEntity
{
public TestEntity BindingHack_ValueMember
{
get
{
return this;
}
}
public string BindingHack_DisplayMember
{
get
{
return this.ToString();
}
}
}
该列的数据绑定(bind)如下所示:
column.DataPropertyName = "Foo";
column.DisplayMember = "BindingHack_DisplayMember";
column.ValueMember = "BindingHack_ValueMember";
也许有点难看,但它有效......
关于c# - Datagridview组合框业务对象更新引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3821480/