2011-05-05 3 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

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(); 
    } 
} 
관련 문제