C1FlexGrid设置了 AllowAddNew="True" 如何监测新加的对象
C1FlexGrid设置了 AllowAddNew="True"界面上我可以在grid上添加一行,但是添加行的数据我如何才能捕捉到?
条件:
用MVVM模式绑定的
数据源是ObservableCollection<T>,
我可以注册数据源的CollectionChanged事件
现象
当我添加一条新的数据(鼠标点击新加行),还没来来得及输入任何数据,数据源的CollectionChanged事件就会触发,这时候数据源假设是3条数据(原来有2条)。
当我输入完东西之后,在按回车。据源的CollectionChanged事件又触发一次,但是数据源依然是3条数据。但是我在CollectionChanged 的参数里能找到新加的数据,但是我输入的值是没有的
目前看来因为新增行是一个内部的操作,没有相关的事件可以专门捕捉,新增行失去焦点后就会将数据保存到数据源中新增的一行中。
如果需要捕捉的话,只能是用Grid_RowEditEnded事件,然后判断e.Row是否是0来确定是否是新增行
private void Grid_RowEditEnded(object sender, CellEditEventArgs e)
{
if (e.Row == 0)
{
var customer = data;
}
}
我看你这边也改的开发包自带的项目,请将您这边目前修改后的项目发上来,我帮您验证一下 Richard.Ma 发表于 2020-3-25 16:38
我看你这边也改的开发包自带的项目,请将您这边目前修改后的项目发上来,我帮您验证一下
NewRow.xaml这页面
Richard.Ma 发表于 2020-3-25 17:51
目前看来因为新增行是一个内部的操作,没有相关的事件可以专门捕捉,新增行失去焦点后就会将数据保存到数据 ...
这个功能是很常见啊,既然我想添加新行,我肯定需要保存,或者对他进行操作我记得你们之前老版本的flex有rowstatus,然后新版本就删掉了,这个不考虑后期把新加对象吐出来么 Richard.Ma 发表于 2020-3-25 17:51
目前看来因为新增行是一个内部的操作,没有相关的事件可以专门捕捉,新增行失去焦点后就会将数据保存到数据 ...
不管怎么样 It works,非常感谢 不客气,目前确实没有类似于rowstatus的熟悉来获取新增的行
页:
[1]