• C# ComboBox(DropDownList)数据绑定后,怎样再添加选项(ZT)


    本文转载于:http://hi.baidu.com/yangyangye2008/blog/item/1775770215a22782d53f7c18.html

    两者大同小异,之说comBoBox吧,我们知道数据绑定控件被绑定之后是无法再在里面添加数据的,因为这是后的DataSource是无法修改的!不管是先再comBoBox之前使用其属性Items下的Add方法添加都会被后来的DisplayMember覆盖,

    ①这样是不行的:

    comboBox1.Items.Add("--选择所有--");

    this.comboBox1.DataSource = EmployerSet;

    this.comboBox1.DisplayMember = "EmployeesTable.FirstName";

    这种错误时先添加一项殊不知,会被后来的覆盖掉!

    ②另外可能有人想的是:

    this.comboBox1.DataSource = EmployerSet;

    this.comboBox1.DisplayMember = "EmployeesTable.FirstName";

    comboBox1.Items.Insert(0,"--选择所有--");

    这一种是最普遍的错误,这时候错误会出现在红色位置:设置 DataSource 属性后无法修改项集合。

    怎么解决了,在长期的经历中我发现还是有方法可行的,第二种最佳,是昨天做项目的时候发现的:

    第一种方法,想修改绑定的数据源之后再绑定,代码如下:

    DataTable dt = EmployerSet.Tables["EmployeesTable"];

    DataRow dr = dt.NewRow();

    dr["FirstName"] = "--选择所有--";

    dt.Rows.InsertAt(dr, 0);

    this.comboBox1.DataSource = dt;

    this.comboBox1.DisplayMember = "FirstName";

    方法二:

    采用了数据源的管理对象BindingContext,先将当前项的值修改之后再赋予呈现成员

    this.comboBox1.DataSource = EmployerSet;

    DataRowView rowV = (DataRowView)this.BindingContext[EmployerSet, "EmployeesTable"].Current;

    rowV["FirstName"] = "--选择所有--";

    this.comboBox1.DisplayMember = "EmployeesTable.FirstName";

    你可以测试发现其实 rowV["FirstName"]原本的值就是EmployeesTable.FirstName中的第一个值,只是后来被修改了,接着赋予其呈现成员,这里之所以修改数据源会成功,我自己的认为是使用到了数据的管理对象,就好像是管理员可以修改一样而别人无法修改!

  • 相关阅读:
    软件工程课程总结
    c++第五次作业
    软件工程第四次作业
    c++第四次作业
    软件工程第三次作业
    c++第三次作业
    软件工程基础第二次作业
    c++第二次作业
    c++第一次作业
    软件工程基础第一次作业
  • 原文地址:https://www.cnblogs.com/Charles2008/p/ComboBox_AddItemWay.html
Copyright © 2020-2023  润新知