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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM