2012-09-03 3 views
1

먼저이 게시물을 읽으면서 시간을내어 주셔서 감사합니다.Page 이벤트 닫기 또는 미리로드 언로드?

제 질문에 직접 대답하겠습니다.

닫히기 전에 WPF 페이지가 닫히는 경우 어떤 방법으로 잡을 수 있습니까? 즉 일종의 PreviewClosing 이벤트입니까? 언로드 된 이벤트가 있음을 알았지 만 페이지가 닫히기 전에 트리거 할 항목이 필요합니다.

내 응용 프로그램에는 창이 있습니다. 창의 본문프레임을 포함하고 프레임은 페이지으로 이동하는 데 사용됩니다.

WPF 창 XAML은

<Grid> 
    <Frame x:Name="_mainFrame" /> 
</Grid> 

C#을 나는 SpecEditor 페이지에서 이벤트를 트리거 할 수있는 방법이 필요합니다 SpecEditor

_mainFrame.Navigate(new SpecEditor(customerDetails)); 

라는 페이지에 내 창 프레임을 탐색 호스팅 윈도우 (예 : PreviewClosing 이벤트)가 닫히려고하므로 다양한 검사를 수행 할 수 있습니다. 주로 저장되지 않은 작업을 저장하라는 메시지를 표시합니다.

페이지가 PreviewClosing 또는 PreviewUnloaded 이벤트를 갖고 있지 않은 것처럼 어떻게 생각하는지 아이디어가 있습니다.

다시 한번 감사드립니다.

** * * 편집 * ** * **

좋아, 내가 필요한 것을 알아 내기 위해 관리했습니다.

this._mainFrame.Content 
:

private void RadWindow_PreviewClosed(object sender, WindowPreviewClosedEventArgs e) 
    { 
    } 

당신이 (내가 _mainFrame 내 프레임의 이름 주)를 사용할 수 있습니다 메인 창에 "프레임"을 액세스하려면 : 메인 창에서

은 내가 PreviewClosing 이벤트를 할당

필자의 경우 Frame에서 호스팅되는 페이지의 이름은 "SpecEditor"이며 도킹 컨트롤이 포함되어 있습니다. 그래서 다음 내가 할 수있는 내 페이지의 내용에 액세스하려면 :

((SpecEditor)this._mainFrame.Content).radDocking 

그것은 내가 그것을 콘텐츠의 액세스 할 수 있습니다 내 사용자 지정 페이지 클래스 (SpecEditor) 내 프레임의 내용을 (페이지 인) 캐스트를, 내 도킹 컨트롤과 같은

좋은 코딩을 위해서는 프레임 내용이 실제로 캐스팅하려는 페이지인지 확인하는 것이 좋습니다. 다음과 같이 할 수 있습니다.

if (this._mainFrame.Content is SpecEditor) 
    { 
     ((SpecEditor)this._mainFrame.Content).radDocking 
     .... etc etc 
    } 

이 정보가 도움이되기를 바랍니다.당신이 정말로 프레임을 사용하는 경우

+0

이 ASP.Net입니까? –

+0

WPF with C# .net 4.0 – RobHurd

답변

관련 문제