如何解决如何在用户控件中引发事件并在主页中捕获它?
| 我有一个“ 0”,我需要通知父页面“ 0”中的一个按钮被单击。如何在ѭ0中引发一个事件并在主页上捕获该事件?我尝试使用static
,许多建议我去参加活动!
解决方法
查看事件冒泡-http://msdn.microsoft.com/zh-cn/library/aa719644%28vs.71%29.aspx
编辑以添加一个简单的示例:(以及其他编辑以改善格式)
用户控制
public event EventHandler StatusUpdated;
private void FunctionThatRaisesEvent()
{
//Null check makes sure the main page is attached to the event
if (this.StatusUpdated != null)
this.StatusUpdated(this,new EventArgs());
}
主页/表格
public void MyApp()
{
//USERCONTROL = your control with the StatusUpdated event
this.USERCONTROL.StatusUpdated += new EventHandler(MyEventHandlerFunction_StatusUpdated);
}
public void MyEventHandlerFunction_StatusUpdated(object sender,EventArgs e)
{
//your code here
}
, 只需在您的控件中添加一个事件:
public event EventHandler SomethingHappened;
并在您想通知家长时提出:
if(SomethingHappened != null) SomethingHappened(this,new EventArgs);
如果您需要自定义EventArgs,请尝试使用EventHandler<T>
而不是T
来获取源自EventArgs
的类型。
, 或者,如果您正在寻找更解耦的解决方案,则可以在此处使用诸如MVVM Light Messenger之类的Messenger发布者/订阅者模型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。