很多人问到在使用DevExpress GridControl控件时,在使用了 gridView1.AddNewRow()后,为什么gridView1_InitNewRow不触发?
网上有很多解释,总结起来大概有如下三条:
1、 gridView1.OptionsView.NewItemRowPosition = DevExpress.XtraGrid.Views.Grid.NewItemRowPosition.Bottom;
2、 gridView1.OptionsBehavior.Editable = true;
3、 GridControl必须要用以下形式的绑定数据源。
BindingSource bdSource = new BindingSource();
bdSource.DataSource = InitDt();
this.gridControl1.DataSource = bdSource;
其实主要原因和这些都没有关系。
真正的原因是GridControl.DataSource=数据源。哪怕是没有记录的数据源。否则gridView1_InitNewRow是不会触发的。
下面是本文的测试Demo代码:注释掉多余的部分,程序照样测试通过。
public partial class Form1 : Form
{
//BindingSource bdSource = new BindingSource();
public Form1()
{
InitializeComponent();
//bdSource.DataSource = InitDt();