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

时间:2014-10-17 06:01:09

标签: c# vb.net

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

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

现在,我想在此过程中使用事件。

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

我有这个用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

1 个答案:

答案 0 :(得分:0)

一些示例代码:

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();