繁体   English   中英

C#委托通知更改

[英]C# delegate to notify changes

我如何将使用委托进行的更改通知外部“源”。

基本上,我有一个表单,然后填写该表单,然后单击一个按钮,该按钮会将我填写的数据另存为XML。 我希望能够通知已使用另一个“实体”可以调用的委托对表单进行了更改。

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

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

实际情况是:当我保存首选项时,当我单击ok_button时,显示我的数据的网格将刷新并使用首选项集。 这有道理吗?

您可以引发一个事件以通知更改。

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

这就是C#事件的目的。

如果我对您的理解正确,则网格和保存按钮位于同一页上。 如果是这样,只需调用PopulateGridData(); ,或在保存更改后立即执行的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM