2011-05-05 66 views
1

我想顯示自定義對話框多次使用下面的代碼:未能顯示自定義WPF對話框超過一次

 TestWindow newTestWindow = new TestWindow(test); 
     newTestWindow.Owner = this; 
     newTestWindow.ShowDialog(); 

,我去運行上面的代碼時,出現以下異常第2次:

Specified element is already the logical child of another element. Disconnect it first. 

回答

1

機會是你想在兩個對話框中顯示相同的元素(可能是測試參數)?當它關閉時,您需要從對話框中斷開該元素,以便它可以在任何後續對話框中使用。

+0

絕對!你是對的,謝謝。我認爲,當GC刪除這些對象時,所有這些對象都會自動斷開連接。 – Vitalij 2011-05-06 07:56:45

0

正常工作:

public partial class MainWindow : Window 
{ 
    private Test _newTestWindow; 

    public MainWindow() 
    { 
     InitializeComponent(); 

     Loaded += new RoutedEventHandler(OnLoaded); 
    } 

    private void OnLoaded(object sender, RoutedEventArgs e) 
    { 
     _newTestWindow = new Test { Owner = this }; 
     _newTestWindow.ShowDialog(); 

     _newTestWindow = new Test { Owner = this }; 
     _newTestWindow.ShowDialog(); 
    } 
}