我正在使用Windows CE,我的界面及其内容是根据所选数据库动态生成的。
组合框从数据库(description table)
中提取值,并将选定的值(value table)
保存到不同的表中。插入过程中没有问题。组合框工作得很好。
但是,当我尝试执行插入数据的检索时,组合框无法显示插入的值。我可以使用任何功能来解决这个问题吗?
selectedDescription = dr["value"].ToString().Split(',').ToList<string>();
if (dr["type"].ToString() == "multiple") {
ComboBox combo = new ComboBox();
combo.DataSource = selectedDescription;
combo.Width = 60;
combo.Height = 27;
combo.Location = new Point(currentX, currentY);
combo.Tag = Id;
//如果getVal不为null(表示为此特定组合选择/插入了值),则combo.DataSource应为插入值。
但是,当我指定combo.Datasource = ds["val"].ToString();
时,我无法在设备上打开此模块。然后我尝试了combo.SelectedValue
,但组合框却显示selectedDescription
。
if (getVal != null) {
foreach (DataRow ds in getVal.Tables[0].Rows) {
if (Convert.ToInt32(ds["descId"].ToString()) == combo.Tag)
{
combo.SelectedValue = ds["val"].ToString();
}
答案 0 :(得分:0)
我为您开发了一个样本来处理您的情况
这里我首先向combobox添加一些数据
// first databind combobox
string cboData="1,2,3,4,5";
comboBox1.DataSource = cboData.Split(',').ToList<string>();
现在尝试在数据绑定后添加一些值。 所以首先我将搜索数据,如果找到然后设置它,但如果没有找到,则将其添加到数据源并设置数据。
int i = comboBox1.FindStringExact("6");
if (i >= 0)
{
comboBox1.Text = "6";
}
else
{
List<string> str1 = (List<string>)comboBox1.DataSource;
str1.Add("6");
comboBox1.DataSource = null;
comboBox1.DataSource = str1;
comboBox1.Text = "6";
}
如果代码还不清楚,请问我。