代码之家  ›  专栏  ›  技术社区  ›  Marlon

Datagridview组合框业务对象更新引用

  •  2
  • Marlon  · 技术社区  · 15 年前

    on here 得到了答案。但是,我现在尝试在绑定到课程对象的BindingList<T>的DataGridView上应用相同的逻辑。课程类具有类型Year的属性。我正在尝试使用ComboBoxColumn来更新课程对象多年来的引用。

    看起来我需要一个TypeConverter来完成,但问题是combobox显示的是一个描述性的值,我不能保证它对那个year对象是唯一的-所以我无法从给定的字符串中获取year对象。

    有没有人在这样的情况下有过任何经验,这肯定是一件很平常的事情,但谷歌这次让我失望了。

    马龙

    1 回复  |  直到 8 年前
        1
  •  3
  •   Community CDub    8 年前

    here . 似乎combobox列中的对象绑定工作不正常,必须指定ValueMember。

    对于我正在处理的特定项目,我突然想到不值得实现自定义类型描述符,因此,我使用了一种相当可怕的方法:

    在我所绑定的实体中,我有以下内容:

    class TestEntity
    {
        public TestEntity BindingHack_ValueMember
        {
            get
            {
               return this;
            }
        }
        public string BindingHack_DisplayMember
        {
            get
            {
                return this.ToString();
            }
        }
    }
    

    column.DataPropertyName = "Foo";
    column.DisplayMember = "BindingHack_DisplayMember";
    column.ValueMember = "BindingHack_ValueMember";
    

    也许有点难看,但它很管用。。。

    推荐文章