【发布时间】:2013-12-25 05:48:00
【问题描述】:
我正在尝试将组合框SelectedValue 属性与我的class property 之一绑定,这是它的代码
ComboBox1.DataBindings.Add("SelectedValue", _bindingClass, "ID",true);
//Also tried
ComboBox1.DataBindings.Add("SelectedValue", _bindingClass, "ID");
类对象结构如下:
public class BindingClass
{
public long ID { get; set; }
public string Code { get; set; }
public string Name { get; set; }
}
这里是 ccomboBox 绑定的代码
public static void BindDataSourceWithCombo(ref ComboBox cmb)
{
DataTable _tableSource = (new AccessConnectionManager()).GetDataTableBySQLQuery("select ValueID,ValueName from PicklistValues");
var _dataSource = (from DataRow _row in _tableSource.Rows
select new
{
ValueMember = _row["ValueID"],
DisplayMember = _row["ValueName"].ToString()
}).ToList();
cmb.DataSource = _dataSource;
cmb.ValueMember = "ValueMember";
cmb.DisplayMember = "DisplayMember";
}
ComboBox 具有 ValueMember 为 int 和 DisplayMember 为 string。
但它不起作用,只要我将组合框显示文本设置为空并且组合框上没有值显示。
编辑
当我在数据库中搜索ValueID 的DataType 时,我发现它是Int16,并且在类属性中我用Int64 分配了它。更改ID属性的dataType后问题得到解决。
【问题讨论】:
-
ComboBox 的数据源是什么?它从哪里得到它的 Items 集合?
-
另外,
ComboBox has ValueMember as int and DisplayMember as string.没有任何意义。 ValueMember 和 DisplayMember 指的是属性的名称,而不是它们的“类型”。 -
@LarsTech 现在检查我更新了我的问题,这会让你清楚我想说什么
-
为我工作。您的 _bindingClass 对象的值是什么?与 ComboBox 相关的任何其他事件?
-
你的查询
select ValueID,ValueName from PicklistValues中ValueID的数据类型是什么?
标签: c# winforms data-binding combobox