如何在保存数据时引发自定义事件

本文关键字:自定义 事件 数据 保存 | 更新日期: 2023-09-27 18:27:00

我正在使用用C#编写的应用程序,我想要简单的事件处理代码。

我有两个表单,一个表单包含一个简单的网格,其中包含客户列表,另一个表单有一些文本框,接受客户的信息,并将数据保存在数据库中。

现在,我想在这个过程中使用event。

当用户使用详细信息表单保存数据时,应该引发事件,它将重新加载网格中的所有数据(带有最近添加的记录)

我有这段用VB.NET编写的代码,它很简单,但我仍然无法理解如何编写C#事件处理代码。

VB代码

网格形式代码

 Private Sub AddCustomer()
 AddHandler Detailform.DataAdded, AddressOf AddRow
 End sub
 Private Sub AddRow()
        dt = LoadAllCustomer()
        gc.DataSource = dt
        gv.FocusedRowHandle = OCustomerCollection.Count - 1
 End Sub

客户详细信息表代码

'Declaration
Public Event DataAdded()
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.
    SetProperties()
    ' invoke save 
    oCustomer.Save()
    RaiseEvent DataAdded()
End sub

如何在保存数据时引发自定义事件

一些示例代码:

public delegate void SavedEventHandler(/* parameters if you need any information what actually got saved */);
public event SavedEventHandler Saved;
public void OnSaved() {
    var handler = this.Saved;
    if (handler != null) {
        handler();
    }
}

保存完成后,您的DetailForm可以调用OnSaved:

this.OnSaved();

现在您可以注册或注销事件:

datailForm.Saved += ReloadData();
datailForm.Saved -= ReloadData();