2013-05-20 155 views
0

我已經構建了一個啓動新表單的wpf表單。新表單獲取更多數據。現在我想要將數據反射回主窗體,即在彈出窗體上實現「保存」按鈕。我要保存的數據是ObservableCollection List的形式。我不知道我是如何做到這一點的。在wpf表單之間傳輸數據

步驟

步驟1的擊穿:主要形式啓動

步驟2:點擊主從發動形式2.

步驟3:取來自數據庫的數據填充形式2。用戶在這裏選擇幾個值。

第4步:單擊表單2中的「保存」按鈕,以便在主窗體中重新選擇值。

我完成了步驟1-3。我很不確定如何做第4步。我不能在這裏做數據綁定,因爲列表是在表單2中定義的(或者是否有出路?)我現在需要將數據保存在數據庫中,然後執行查詢嗎?

+1

*快速和骯髒,但工作方式*:在form2構造函數中傳遞對form1實例的引用。 –

+0

@SteveB感謝你的建議,我能夠做到這一點。非常感謝 。 – rockstar

回答

1

在MainForm中創建ObservableCollection變量並分配初始空值。將此變量傳遞給窗體2.如果用戶按下Save按鈕,則創建這些變量的實例並以表單2的形式向這些變量添加值。如果用戶按取消按鈕將此變量設置爲null。在表單2打開/關閉代碼之後的MainForm中,檢查變量是否爲空,然後將某些值賦給表單2中的這些變量。因此請進一步使用該變量。

1

我能夠通過使用評論中張貼的Steves建議來解決問題。做到這一點的方法是 「在MainForm的的引用傳遞到第二形式在構造」

實施例:

的MainForm:

public void updateText(String data) 
{ 
    txb.Text = data; 
} 

表格2:

// Here the constructor takes a reference of the Mainform . 
MainWindow mainform = null; 

public Form2(MainWindow w) 
{ 
    mainform = w; 
    ...... 
} 
// Perform relevant operations on Form2 finally call 
mainform.updateText(data); 

就是這樣。該更改反映在MainWindow中定義的文本框中。