【发布时间】:2012-03-14 08:38:12
【问题描述】:
我有一个作为用户控件创建的组合框(它实际上由标签、组合框和文本框组成)。我正在尝试将数据集绑定到组合框数据源,但我不断收到关于 ValueMember/Display 成员的错误消息:
Cannot bind to the new display member - newdisplay member
Cannot bind to the new value member - parameter name: value
我以为我已经为用户控件正确编码了所有内容:
public partial class ucComboBox : UserControl
{
#region Properties (6)
private bool isEditableReadOnly;
private bool ArrVisible;
private string _value;
private string _name;
public string value
{
get { return _value ; }
set { _value = value; }
}
public string name
{
get { return _name; }
set { _name = value; }
}
}
我在用户控件中有一些其他属性和事件,但它们不应该是问题。
我绑定信息的代码:
((ucComboBox)ctrl).combobox.DataSource = info;
((ucComboBox)ctrl).combobox.ValueMember = "radiology_id";
((ucComboBox)ctrl).combobox.DisplayMember = "radiology_name";
每当它击中 value 成员时它就会爆炸,我得到了上面提到的两个错误。我的用户控件中是否缺少某些内容?在我看来这应该可以工作..(仅供参考 - 信息数据源确实包含两列)
我尝试了很多不同的策略,但都没有成功。请帮忙!
谢谢
【问题讨论】:
-
什么是
info?您绝对确定其中存储的任何内容都有公共radiology_id 和radiology_name? -
我很肯定。我在设置之前查看数据集。
-
info是数据集还是数据表?如果是 DataSet,则必须将 DataSource 设置为所需的 DataTable:DataSource = info.Tables[0]; -
这里的数据源究竟是什么?数据绑定与 source 相关,这是您还没有真正告诉我们的一件事……坦率地说,ucControlBox 在这里无关紧要。我们需要知道:究竟是什么?
-
@kevev22 或列表或单个对象或延迟列表或绑定源抽象或...
标签: c# winforms user-controls combobox