这可能已经被问过,但我似乎无法找到这个具体的问题,所以这里有......
我在C#中有一个表单,其中每个文本框都绑定到一行中的一个字段。行可以通过底部的某些按钮循环,但是from中一次显示的所有数据都来自一行。当用户单击“更新”
时,所做的任何更改都会更新回数据库一个字段(类)是枚举(0,1,2),其中只有值存储在数据库中,但对用户没有多大意义。我被要求让用户更明显,所以我决定使用下拉式组合框。由于数据库没有任何对值的含义的引用,我决定使用DataBindings而不是DataSource,所以我可以只使用索引作为数据绑定,但似乎SelectedItem或Value不是这样做的方法
这是我的目标:
1存在于数据库中,因此在组合框中选择“B”
用户选择“C”并更新数据库,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 只需记住将类的标题和值定义为属性,否则它将无效。