有一个DataViewGrid,一个TextBox,
dataViewGrid绑定到 DataTable
TextBox 绑定到DataTable 的某字段。显示都没问题,就是,当移动到某行后,在TextBox中修改数据,再点保存按钮,无效。非得移动当前行到其他行,才能保存TextBox新修改的数据。
(这个可用代码实现)若只有一行,怎么办呢?
dataViewGrid绑定到 DataTable
TextBox 绑定到DataTable 的某字段。显示都没问题,就是,当移动到某行后,在TextBox中修改数据,再点保存按钮,无效。非得移动当前行到其他行,才能保存TextBox新修改的数据。
(这个可用代码实现)若只有一行,怎么办呢?
dataGridView1.DataSource = ds1.Tables[0];
textBox1.DataBindings.Clear();
textBox1.DataBindings.Add("Text", ds1.Tables[0], "pono"); 发现改了TextBox中的数据,若不移动到其他行,则其中数据不能反映到
ds1.Tables[0]中,
是否只能这样:
将TextBox的数据值与ds1.Tables[0]的某列比较一下,若不是,就改一下
ds1.Tables[0]的某列值为TextBox的内容,再保存 这样是不是太麻烦呢?
加上:UpdateSourceTrigger=PropertyChanged 就指示当属性有变化时把数据更新到数据源。
可是,当前行的datastate仍然 为unchanged ,所以没有保存到
如何强制更改rowstate状态呢?
//用代码赋值
ds1.Tables[0].Rows[c]["pono"] = textBox1.Text;
if (ds1.Tables[0].Rows[c].RowState == DataRowState.Modified)
{ }
可ds1.Tables[0].Rows[c].RowState 仍然为unchanged这是为什么呢?前面明明有赋值语句呀。都改变了行的列数据
谢谢各位,都有分