今天我們一起來看一下WPF窗體之間的交互-窗體之間的傳值。有兩個窗體,一個是父窗體,一個是子窗體。要將父窗體的文本框中的值傳遞給子窗體中的控制項。我們該怎麼實現? 接下來我們一起來實現窗體之間的傳值,在父窗體上我們放兩個控制項,一個文本框TxtMessage,另一個是按鈕BtnSend.子窗體上放一個文 ...
今天我們一起來看一下WPF窗體之間的交互-窗體之間的傳值。有兩個窗體,一個是父窗體,一個是子窗體。要將父窗體的文本框中的值傳遞給子窗體中的控制項。我們該怎麼實現?
接下來我們一起來實現窗體之間的傳值,在父窗體上我們放兩個控制項,一個文本框TxtMessage,另一個是按鈕BtnSend.子窗體上放一個文本框TxtInput。
要實現傳值,我們首先要在子窗體中定義一個可讀可寫的公用的字元串:getMessage。然後在父窗體中按下按鈕的時候,定義一個字元串Message,用來存放輸入框的文字。再將Message中存放的輸入框的文字傳遞給子窗體中定義的可讀可寫的公用字元串getMessage。下麵看一下實現的後臺代碼:
看到這裡是不是感覺很簡單咧?當然在我們寫程式時,可能使用的就不只是單純的傳遞一個值那麼簡單的。因為本人還剛接觸到一個WPF項目,沒有想過的場景。這裡我進行假設一個場景,依然還是有父子窗體,子窗體是父窗體中一個按鈕的屬性設置器,在子窗體中添上要設置屬性的值,然後按設置完成,子窗體關閉,父窗體的相應按鈕的屬性也根據子窗體中的設置值而改變!不知道大家明不明白我的意思,這個場景不明白的多看一次應該知道了,上面是簡單傳值,這個場景簡單地說就是窗體之間的信息交互。下麵就進入正題,怎麼進行交互?其實這裡只是實現這個場景的一種方法,也是比較簡單的方法,用到的知識是C#中的委托。這裡演示一個最簡單的例子:
首先,自定義一個公共類MessageHelp,用來封裝委托類型的。
public delegate void delegateMessage(int num);
新增數值驗證規則類,這個在前面一篇中已經講了驗證規則,這裡就不在細說了。
首先聲明瞭子窗體,然後child.CallBackMethod設置為自己的函數Method,當然這個Method和委托的參數是一致的,然後就在這裡響應委托給過來的參數,處理。大概就這樣了,效果圖是這樣: