WPF自學入門(八)WPF窗體之間的交互


          今天我們一起來看一下WPF窗體之間的交互-窗體之間的傳值。有兩個窗體,一個是父窗體,一個是子窗體。要將父窗體的文本框中的值傳遞給子窗體中的控件。我們該怎么實現?

       接下來我們一起來實現窗體之間的傳值,在父窗體上我們放兩個控件,一個文本框TxtMessage,另一個是按鈕BtnSend.子窗體上放一個文本框TxtInput。

父窗體的界面:

 

子窗體的界面:

 

      要實現傳值,我們首先要在子窗體中定義一個可讀可寫的公用的字符串:getMessage。然后在父窗體中按下按鈕的時候,定義一個字符串Message,用來存放輸入框的文字。再將Message中存放的輸入框的文字傳遞給子窗體中定義的可讀可寫的公用字符串getMessage。下面看一下實現的后台代碼:

父窗體的后台代碼:

 

子窗體的后台代碼:

 

看一下運行效果:

 

       看到這里是不是感覺很簡單咧?當然在我們寫程序時,可能使用的就不只是單純的傳遞一個值那么簡單的。因為本人還剛接觸到一個WPF項目,沒有想過的場景。這里我進行假設一個場景,依然還是有父子窗體,子窗體是父窗體中一個按鈕的屬性設置器,在子窗體中添上要設置屬性的值,然后按設置完成,子窗體關閉,父窗體的相應按鈕的屬性也根據子窗體中的設置值而改變!不知道大家明不明白我的意思,這個場景不明白的多看一次應該知道了,上面是簡單傳值,這個場景簡單地說就是窗體之間的信息交互。下面就進入正題,怎么進行交互?其實這里只是實現這個場景的一種方法,也是比較簡單的方法,用到的知識是C#中的委托。這里演示一個最簡單的例子:

下面看一下具體實現

在上一個例子中的子窗體新增一個按鈕返回BtnReturn。

首先,自定義一個公共類MessageHelp,用來封裝委托類型的。

public class MessageHelp

    {

        public delegate void delegateMessage(int num);

    }

 

然后,我們看一下子窗體

 

新增數值驗證規則類,這個在前面一篇中已經講了驗證規則,這里就不在細說了。

 

 

好了,設定了回調函數,然后看一下主窗口:

 

首先聲明了子窗體,然后child.CallBackMethod設置為自己的函數Method,當然這個Method和委托的參數是一致的,然后就在這里響應委托給過來的參數,處理。大概就這樣了,效果圖是這樣:

先輸入一個 12,按返回。父窗體的文本框也是12

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM