View Post

WPF 委托

子窗体调用主窗体事件:

主窗体: 

UserControl1 uc = new UserControl1();//用户控件窗体
            uc.Up += new UpHandler(Up);//【2】委托声明(给子窗体操作调用的)
            temptb.Content = uc;

子窗体:

交互逻辑层外定义
    //【1】定义委托
    public delegate void UpHandler();//,可加参数

交互逻辑层内定义

//【3】声明委托

 public event UpHandler Up;//【2】从主窗体转过来

// 【4】调用事件函数 (使用按钮事件)

 private void button1_Click(object sender, EventArgs e)
        {

            // 触发事件, 传递自定义参数
    ////方法一
            //if (Up != null)
            //{
            //    Up();
            //}

            //方法二
            Up?.Invoke();

        }

 

主窗体调用子窗体事件:

主窗体:

交互逻辑层外定义
     //【1】定义委托
    public delegate void AddHandler();//新建

交互逻辑层内定义

   //【3】创建委托
        public event AddHandler Add;//新建

        //【4】使用委托对象
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            //Add
            //FrmChangeCommodity
            if (this.Add != null)
            {
                Add();//添加按钮
                return;
            }
        }
        #endregion

 

子窗体:

 //【2-1】定义主窗体对象
        MainWindow frmMain1;

  public FrmCommodity()
        {
            InitializeComponent();
            //初始化
            //******************************************************************************
            this.frmMain1.Add += new AddHandler(Add);

}

  //【2】委托声明(给主窗体操作的)

   /// <summary>
        /// 调用添加按钮
        /// </summary>
        private void Add()
        {
                btnAdd_Click();
        }

posted on 2019-06-04 14:54 夏乐 阅读() 评论() 编辑 收藏

版权声明:本文为xiale原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiale/p/10973576.html