2011-12-13 53 views
1

我覺得我有一個非常簡單的問題。我在Visual Basic 2010中使用WPF(Express,但我認爲這不會改變我的問題。)VB.Net Noob:我如何像使用函數一樣使用窗口 - 傳遞參數,使用窗口,然後在關閉時獲取數據?

我正在創建一個窗口,它是用於在觸摸屏上編輯數值的通用鍵盤。我想按'編輯'按鈕創建一個鍵盤窗口的副本/調出同一個窗口的可重用版本(我不介意),但傳入參數:我操縱的舊值,以及要在數字鍵盤上方顯示的標題。

我希望用戶能夠輸入新值,然後按'完成'鍵提交此值,並將其發送回主應用程序窗口並進入包含文本框的自定義控件。

(我已經把數字鍵盤的佈局整理出來了;我已經在使用它的一個變體來設置一個全局密碼'訪問級別',它讓信息進入和退出,並且讓我撓頭)

如果我調用一個函數,它會是這樣簡單:

textBoxValue = changeMyValue("window title", oldTextBoxValue) 

但是當它成爲一個窗口類,我有點糊塗了。

感謝您的幫助!

+0

您是否嘗試過將要傳遞給構造函數的參數添加到鍵盤窗口中,然後將所需的值傳遞給那裏?還有更多優雅的方法可以解決這個問題,您正在使用MVVM。 – RockyMountainHigh 2011-12-13 18:55:18

回答

3

只需創建一個方法來創建一個窗口,獲取該值並將其傳回。例如

public int ChangeMyValue(string title, string oldvalue) 
{ 
    var window = new KeyPadWindow(title, oldvalue); 
    window.ShowDialog(); 
    return window.Value; 
} 

假設你需要一個int和對話做一些轉換,並公開在一個名爲Value屬性的值。

+0

好吧,我想這很明顯,當我記得窗口是一個類(duh),並且只是像處理其他隨機類一樣操縱數據。我假設此ChangeMyValue子例程的適當位置將在MyCustomControl類中,因爲此自定義控件的許多實例將創建鍵盤的實例並在其輸出上執行操作? – evilspoons 2011-12-13 19:56:23

相關問題