2010-09-20 138 views
5

我有一個父窗口,它在子窗口中做了一些選擇/操作後關閉了子窗口,我想將一些信息發送回父窗口(一個自定義類對象),使用WPF提供的功能在WPF中完成此操作的最佳方式是什麼?wpf中父窗口和子窗口之間的通信

回答

5

你有很多選擇:

  • 你可以在父窗口聽
  • 您可以定義在引用的方法在父的子窗口的委託你的子窗口中使用自定義事件窗口
  • 您可以更改子窗口的構造函數以引用父窗口並使用該引用調用父窗口上的方法
  • 您可以使用VisualTreeHelper類獲取父窗口並調用am ethod對參考
-1

this link提取:

我發現從一個子窗口傳遞數據給 父窗口的最簡單方法是使用一個應用程序範圍內的屬性。此屬性是 的一個對象,並不是用於將數據從子窗口 窗口傳遞給父項的最優雅形式,但它是最少量的編程。最好的 這樣做的方法是使用get和set訪問器屬性。

創建一個主窗口(主窗口)創建一個子窗口(在這種情況下, 密碼)

在主窗口,子窗口必須證明,也就是說,一個 按鈕點擊之內。這個窗口會有一個按鈕來做一些事情,在這個 的情況下,它是從數據庫中刪除一條記錄。

private void btnDelete_Click(object sender, RoutedEventArgs e) 
{ 
    Password passwordentry = new Password(); 
    passwordentry.ShowDialog(); 

    if (Application.Current.Properties["PassGate"].ToString() == "mypassword") 
    { 
     Code, or call to delete the record; 
    } 
    Application.Current.Properties["PassGate"] = ""; 
} 

在子窗口(密碼),應用程序的性能是使用文本框 集。這是一個簡單的窗口,它有一個名爲 PasswordTextBox的文本框和一些按鈕,如Accept和Cancel。

private void AcceptButton_Click(object sender, RoutedEventArgs e) 
{ 
    Application.Current.Properties["PassGate"] = PasswordTextBox.Text; 
    this.Close(); 
}