我们知道,通过C1FlexGrid的AllowAddNew属性设置为true,在c1flexgrid的底部会出现一个NewRow行。

当进入NewRow行的单元格的编辑状态,就会自动给C1FlexGrid添加一行。

如果我们想增加逻辑,在某些条件下取消AddingRow,由于没有AddingRow的相关事件,就可以在BeginningEdit事件里去判断和设置,取消单元格进入编辑状态,以便达到需求。

这里我们需要介绍两个属性:ListCollectionView的IsAddingNewCancelNew

对于IsAddingNew属性,如果正在进行添加,则为true,否则为false。通过调用ComitNew或CancelNew结束该添加事务。

该属性的详细说明,可以参考微软的MSDN:https://msdn.microsoft.com/zh-cn/library/system.windows.data.listcollectionview.isaddingnew(v=vs.110).aspx

我们就可以通过IsAddingNew属性判断是否正在添加行,如果是,就取消添加。

代码参考

private void c1FlexGrid1_BeginningEdit_1(object sender, CellEditEventArgs e)    
{            
if (((System.Windows.Data.ListCollectionView)(c1FlexGrid1.CollectionView)).IsAddingNew)          
{                
((System.Windows.Data.ListCollectionView)(c1FlexGrid1.CollectionView)).CancelNew();
               
e.Cancel = true;   
}        
}

 

更多资源

C1FlexGrid在线英文产品文档地址:

http://helpcentral.componentone.com/nethelp/C1FlexGridWPFSilv/ComponentOne%20FlexGrid%20for%20WPF%20and%20Silverlight.html

如果你对C1FlexGrid感兴趣,请到我们的官网下载最新版本:/download/?pid=6

如果你有疑问,可以到GCDN论坛获得技术支持:http://gcdn.grapecity.com.cn/showforum-138.html