欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

参考:

http://www.tracefact.net/tech/009.html

相关标签: WPF学习