2010-02-11 2 views
0

나는 UserControlWindow에 가지고 있습니다. 응용 프로그램의 수명 동안 해당 Window 때때로 닫힙니다 및 사용자가 다시 필요할 때 새 인스턴스가 만들어집니다.WPF Window.GetWindow (이상) 이상한 동작입니까?

어떤 시점에서 UserControl은 대화 상자를 표시해야하며 소유자 권한으로 대화 상자에 부모 컨트롤을 전달해야합니다. 여기에 catch가 있습니다 : Window이 처음 생성되고 컨트롤에 대화 상자가 표시되면 모든 것이 잘 작동합니다. Window.GetWindow(this)을 호출하고 그 결과를 대화 상자에 전달합니다. Window가 닫힌 이후 새로운 인스턴스가 생성되고 UserControl 대화 상자를 열 때 그러나 그때 나는 다음과 같은 예외를 얻을 :

폐쇄 된 창에 소유자 속성을 설정할 수 없습니다. Window가 생성 될 때마다

는이 코드를 호출 : 대화 상자를 표시하는 동안

var window = new ControllerConfigurationWindow() { Owner = this }; 

그래서 그것은 분명 새로운 인스턴스, 그리고 물론, 창이 열려 ... 내가 아니에요 어디서나 닫을 수 있습니다 ...

제가 궁금해하는 점은 제가 말한 것처럼 내 마음에는 말이되지 않습니다. 그러나 Window.GetWindow(this) 어떻게 든 저에게 오래된 인스턴스의 부모를 줄 수 있습니까?

답변

1

신경 쓰지 마 ... 난이 무슨 일이 있었는지는 ... 를 생각하지 않았습니다 : 윈도우가 생성 될 때

이 이벤트 핸들러가 , 매여있다하지만 난 아무데도을 풉니 다하지 않았다. .. 그래서 코드는 실제로 닫힌 창에서 호출 된 입니다.

관련 문제