C#委托和事件(WPF实现关闭子窗口B时触发A窗口事件)
详细用法:https://blog.csdn.net/kenjianqi1647/article/details/84134731
贴出我用到的部分:
using System;
namespace SimpleEvent
{
using System;
/***********发布器类***********/
public class EventTest
{
private int value;
public delegate void NumManipulationHandler();//声明委托
public event NumManipulationHandler ChangeNum;//声明事件
protected virtual void OnNumChanged()
{
if ( ChangeNum != null )
{
ChangeNum(); /* 第三步事件被触发,执行事件处理方法*/
}
else
{
Console.WriteLine( "event not fire" );
Console.ReadKey(); /* 回车继续 */
}
}
public EventTest() //构造方法
{
int n = 5;
SetValue( n );
}
public void SetValue( int n )
{
if ( value != n )
{
value = n;
OnNumChanged();
}
}
}
/***********订阅器类***********/
public class subscribEvent
{
public void printf()
{
Console.WriteLine( "event fire" );
Console.ReadKey(); /* 回车继续 */
}
}
/***********触发***********/
public class MainClass
{
public static void Main()
{
EventTest e = new EventTest(); /* 实例化对象,第一次没有触发事件 */
subscribEvent v = new subscribEvent(); /* 实例化对象 */
e.ChangeNum += new EventTest.NumManipulationHandler( v.printf ); /* 第一步注册事件 */
e.SetValue( 7 );//第二步触发事件,事件生成时调用委托
e.SetValue( 11 );//第二步触发事件,事件生成时调用委托
}
}
}
版权申明
本文系作者 @Mr.Yang 原创发布在果皮皮站点。未经许可,禁止转载。
暂无评论数据