关于DevExpress GridControl中gridView1_InitNewRow事件不触发的原因

在DevExpress GridControl的使用中,发现gridView1_InitNewRow事件未触发,通常认为与NewItemRowPosition设置、可编辑性或数据源绑定方式有关。然而,实际原因是即使数据源为空,GridControl仍需设置DataSource。测试代码显示,只需正确设置DataSource,事件即可正常触发。
摘要由CSDN通过智能技术生成

很多人问到在使用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();
       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值