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