C#委托通知更改

时间:2011-12-29 11:50:20

标签: c# asp.net delegates

如何使用代表通知外部“来源”我所做的更改。

基本上我有一个表单,我填写该表单并单击一个保存的按钮 我将数据填充到数据库表中作为XML。我希望能够通过另一个“实体”可以调用的委托来通知表单的更改。

public void Changes_Made()
{
     //yay. Changes made.
}

protected void okButton_Click(object sender, EventArgs e)
{
    //...
    //save data
    //...
    Changes_Made();
}

实际情况是:当我保存我的偏好时,显示我的数据的网格将刷新并使用我点击ok_button时设置的首选项。这有什么意义吗?

3 个答案:

答案 0 :(得分:1)

您可以举起一个事件来通知更改。

public ctor() // Method where you want to hook the event, can be constructor or any thing else
{
    //Hook to event
    obj.ChangesMade += Changes_Made; 
    // Here obj is the object of type in which you have okButton_Click 
    // and ChangesMade event declaration

}
public void Changes_Made()
{
     //yay. Changes made. update grid
}


//declare event
public event EventHandler ChangesMade();
protected void okButton_Click(object sender, EventArgs e)
{
    //...
    //save data
    //...

    //raise event
    if(ChangesMade != null)
        ChangesMade(this, new EventArgs());
}

答案 1 :(得分:0)

这就是C# events的用途。

答案 2 :(得分:0)

如果我理解正确,网格和保存按钮位于同一页面上。如果是这种情况,只需在保存更改后直接调用PopulateGridData();或类似内容。