WPF控件自定义事件
程序员文章站
2022-03-04 10:49:56
...
第一步:定义一个委托,委托属于一个定义,是和类、接口类似的,通常放在外部
/// <summary>
/// 轻提示事件委托
/// </summary>
/// <param name="text"></param>
public delegate void SendMessageEventHandle(string text);
第二步:定义一个SendMessageEventHandle类型事件,事件属于类的成员,所以要放在类的内部
public event SendMessageEventHandle SendMessageEvent;
第三步:订阅事件,注册委托变量
_businessEdit.SendMessageEvent += businessEdit_SendMessageEvent;
//左边:_businessEdit下的一个事件
//右边:是要执行的方法
/// <summary>
/// 弹窗内容控件
/// </summary>
private IPopup _businessEdit = null;
public IPopup BusinessEdit
{
get { return _businessEdit; }
set { _businessEdit = value; }
}
/// <summary>
/// 弹窗轻提示事件方法
/// </summary>
/// <param name="text"></param>
private void businessEdit_SendMessageEvent(string text)
{
lightMessage.Dispatcher.BeginInvoke(new Action(() =>
{
lightMessage.Text = text;
lightMessage.Start();
}));
}
第四步:事件的触发
/// <summary>
/// 显示轻提示
/// </summary>
/// <param name="text">文本</param>
protected void SendMessage(string text)
{
if (SendMessageEvent != null)//如果有方法注册委托变量,在第三步中,已经有方法注册了委托变量了
{
SendMessageEvent(text);//通过委托调用方法
}
}
第五步:调用的条件
if (!CurrentUser.Instance.UserPermissions.VerifyPermissions("智能电视设备管理", string.Format("智能电视设备{0}表", _type.ToString()), "查询"))
{
SendMessage("您没有该操作的权限!");
return;
}
参考: