1, gridControl1绑定到bindsource, bindsource数据源为DataTable(dt); 在通过textbox的binding绑定各个属性.
2, 通过更改GridCell会触发, bindsource.CurrentItemChanged事件.
?? 问题是更改textbox的值不会触发bindsource.CurrentItemChanged事件. 不是已经绑定到bindsource了吗?
代码如下
.... BindingSource bindsource.DataSource = dt;
gridControl1.DataSource = bindsource;
bind();
...
/// <summary>
/// 绑定
/// </summary>
private void bind()
{
txt_id.DataBindings.Clear();
txt_id.DataBindings.Add("Text", bindsource, "ID");
txt_no.DataBindings.Clear();
txt_no.DataBindings.Add("Text", bindsource, "NO");
txt_memo.DataBindings.Clear();
txt_memo.DataBindings.Add("Text", bindsource, "REMARK");
Dept_set.DataBindings.Clear();
Dept_set.DataBindings.Add("dept_id", bindsource, "FACTORY_ID");
dept_get.DataBindings.Clear();
dept_get.DataBindings.Add("dept_id", bindsource, "Ware_ID");
}
2, 通过更改GridCell会触发, bindsource.CurrentItemChanged事件.
?? 问题是更改textbox的值不会触发bindsource.CurrentItemChanged事件. 不是已经绑定到bindsource了吗?
代码如下
.... BindingSource bindsource.DataSource = dt;
gridControl1.DataSource = bindsource;
bind();
...
/// <summary>
/// 绑定
/// </summary>
private void bind()
{
txt_id.DataBindings.Clear();
txt_id.DataBindings.Add("Text", bindsource, "ID");
txt_no.DataBindings.Clear();
txt_no.DataBindings.Add("Text", bindsource, "NO");
txt_memo.DataBindings.Clear();
txt_memo.DataBindings.Add("Text", bindsource, "REMARK");
Dept_set.DataBindings.Clear();
Dept_set.DataBindings.Add("dept_id", bindsource, "FACTORY_ID");
dept_get.DataBindings.Clear();
dept_get.DataBindings.Add("dept_id", bindsource, "Ware_ID");
}
private void button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("nihao",typeof(string));
DataRow dr= dt.NewRow() ;
dr["nihao"] = "nihao";
dt.Rows.Add(dr);
bindingSource1.DataSource = dt;
textBox2.Text = dt.Rows[0][0].ToString();
textBox2.DataBindings.Clear();
textBox2.DataBindings.Add("Text", bindingSource1, "nihao");
} private void bindingSource1_CurrentItemChanged(object sender, EventArgs e)
{
textBox1.Text = "sddfs";
}
结果textbox1显示值sddfs