drop down list 放如DataGrid里如何动态绑定?

解决方案 »

  1.   

    给你代码参考:没有经过验证,//初始化窗口
    private void Form1_Load(object sender, System.EventArgs e)
    {
    //从数据库中读取一张表
    string sSql = "select * from stuInfo";
    DBManager db = new DBManager();
    DataTable dt = db.QueryDT(sSql);
    //一定要该名子
    dt.TableName = "学生表";
    this.dataGrid1.DataSource = dt;
    //创建一个DataDrid样式的对象
    DataGridTableStyle dgts = new DataGridTableStyle();
    //让样式对象指向你要改的表
    dgts.MappingName = "学生表";
    this.dataGrid1.TableStyles.Clear();
    this.dataGrid1.TableStyles.Add(dgts);
    //得到你要修改样式的那一列
    DataGridColumnStyle dgcs = dgts.GridColumnStyles["stuSex"];
    DataGridTextBoxColumn dgtc = (DataGridTextBoxColumn)dgcs;//创建一个ComboBox对象 并改变他的一些属性
    ComboBox cbx = new ComboBox();
    cbx.Items.Add("男");
    cbx.Items.Add("女");
    cbx.Cursor = Cursors.Hand;
    cbx.Dock = DockStyle.Fill;//为ComboBox添加委托事件
    cbx.SelectionChangeCommitted+=new EventHandler(cbx_SelectionChangeCommitted);//取出那个单元格的文本框,并把ComboBox放在上面
    dgtc.TextBox.Controls.Clear();
    dgtc.TextBox.Controls.Add(cbx);

    dgtc.ReadOnly = true;//为TextBox添加委托事件
    dgtc.TextBox.Enter +=new EventHandler(TextBox_Enter);
    }//当选中那个文本框是触发的事件处理方法
    public void TextBox_Enter(object sender, System.EventArgs e)
    {
    TextBox txt = (TextBox)sender;
    string s = txt.Text;
    ComboBox cbx = (ComboBox)txt.Controls[0];
    cbx.Text = s;
    }//当选中ComboBox中某一项时触发的时间
    private void cbx_SelectionChangeCommitted (object sender, System.EventArgs e)
    {
    ComboBox cbx = (ComboBox)sender;
    string item = cbx.SelectedItem.ToString();
    this.dataGrid1[this.dataGrid1.CurrentCell] = item;
    }
      

  2.   

    两种方法
    http://topic.csdn.net/u/20080516/12/d64d232c-1a5e-4d5a-8847-ed704ae625cf.html
      

  3.   

    方法太多了,可绑定hashtable,Dirctionary