代码之家  ›  专栏  ›  技术社区  ›  lc.

将组合框绑定到IList并使用SelectedValue

  •  5
  • lc.  · 技术社区  · 17 年前

    我有一个 ComboBox KVPList 是一个 IList (关于 KeyValuePair

    comboBox.DisplayMember = "Value";
    comboBox.ValueMember = "Key";
    comboBox.DataSource = KVPList;
    

    然后,我与您建立了一个绑定 SelectedValue BindingSource (致 DataSet 显示良好,可以选择)。

    null . 我也玩过命令,但没用。

    有人能解释一下这一点或提出解决办法吗?

    为了记录在案,在同一张表格上,我还有另一张 选择值 依然如故 . 这个 DataSource 数据集 ,而非 它就像一个符咒。这可能是一个选择,使一个 DataTable ,但它似乎有很多额外的开销;我正在生成 伊里斯特 从枚举中。

    1 回复  |  直到 17 年前
        1
  •  7
  •   lc.    17 年前

    哎哟在这件事上浪费了半天的时间后,我终于明白了。这完全是我的错误。

    这个 KVPList IList KeyValuePair< short ,string> ,但数据字段的类型为 int . 基本上,数据绑定将启动,并设置 SelectedValue DisplayMember 和 ValueMember 绑定将启动,检查 再一次自从 不 int ,它将找不到匹配项,因此将其设置为null。

    我将把这个问题留给别人,以防其他人遇到同样的问题。很难跟踪,因为我希望它要么尝试强制转换,要么抛出异常,而不是默默地变为null。毕竟 短的 int (int)10 == (short)10

    推荐文章