如何将数据字段值绑定到组合框索引?

时间:2010-09-22 21:46:53

标签: c# binding .net-2.0

这可能已经被问过,但我似乎无法找到这个具体的问题,所以这里有......

我在C#中有一个表单,其中每个文本框都绑定到一行中的一个字段。行可以通过底部的某些按钮循环,但是from中一次显示的所有数据都来自一行。当用户单击“更新”

时,所做的任何更改都会更新回数据库

一个字段(类)是枚举(0,1,2),其中只有值存储在数据库中,但对用户没有多大意义。我被要求让用户更明显,所以我决定使用下拉式组合框。由于数据库没有任何对值的含义的引用,我决定使用DataBindings而不是DataSource,所以我可以只使用索引作为数据绑定,但似乎SelectedItem或Value不是这样做的方法

这是我的目标:
1存在于数据库中,因此在组合框中选择“B” 用户选择“C”并更新数据库,2现在存储在数据库中。

关于我需要什么来实现这项工作?

2 个答案:

答案 0 :(得分:0)

我假设您的表单上有一个BindingSource来绑定数据。您可以按如下方式绑定SelectedIndex的{​​{1}}属性:

ComboBox

答案 1 :(得分:0)

实际上我能够将它绑定到自定义对象。对于这么简单的任务来说,这是一项太多的工作。但您可以完全控制显示/值对。无论如何,我以为我会分享,你决定:
创建一个包含2个字段的新类(比如CustomItem):

Public int Value{get;set;}  
public string Title {get;set;}  

然后以你的形式:

var item1 = new CustomItem() { Title = "A", Value = 10 };
        var item2 = new CustomItem() { Title = "B", Value = 20 };
        var item3 = new CustomItem() { Title = "C", Value = 30 };
        var lst = new List<CustomItem>();
        lst.Add(item1);
        lst.Add(item2);
        lst.Add(item3);
        comboBox1.DataSource = lst;
        comboBox1.DisplayMember = "Title";
        comboBox1.ValueMember = "Value";

现在你有一个数据绑定组合框,以防你的表格中没有BndingSource 只需记住将类的标题和值定义为属性,否则它将无效。