2012-05-18 3 views
0

Windows 8 Metro 앱을 디자인 중이며 오른쪽에서 탐색 이벤트 문제가 발생했습니다. 문제를 단순화하기 위해 설명은 다음과 같습니다.Windows 8 앱 개발자의 GoBack() 이벤트

두 개의 페이지 : MainPage.xaml 및 DetailPage.xaml이 있습니다. MainPage.xaml은 listview를 포함하고, 항목은 기사 개체 (웹에서 기사 항목이 다운로드되는 항목) 일 때 항목이 클릭됩니다. 프레임의 의지 전체 기사를 읽은 후

void ItemView_ItemClick(object sender, ItemClickEventArgs e) 
     { 
      // Navigate to the appropriate destination page, configuring the new page 
      // by passing required information as a navigation parameter 
      this.Frame.Navigate(typeof(DetailPage), e.ClickedItem); 
     } 

을 사용하여, 사용자가 그런 문제가 온다

<Button x:Name="backButton" Click="GoBack" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource BackButtonStyle}"/> 

으로 정의 된 "GoBack을"버튼을 클릭합니다, 프레임은 그냥 탐색 있음을 해야하는 MainPage에 있지만 탐색 후에는 MainPage의 DataContext가 누락되고 MainPage의 생성 기능이 다시 호출되어 웹 리소스를 가져옵니다.

Windows Phone 개발자로서이 문제에 대해 혼란스러워합니다. 아무도 나를 도와 줄 수 없었어. 사전에

감사합니다.

답변

2

WinRT/XAML에서 Page.NavigationCacheMode으로 지정된 기본 동작은 Windows Phone의 PhoneApplicationPage와 다릅니다. 기본값은 NavigationCacheMode.Disabled이며 NavigationCacheMode.Enabled 또는 .Required는 예상대로 작동하기를 원할 것입니다.

+0

감사합니다. Filip. 그것은 예상대로 작동합니다. – ellic

1

blogged about this problem 여기에 도움이되기를 바랍니다.

NavigationCacheMode를 활성화 한 후에도 Windows Phone과 다른 점이 하나 있습니다. 캐시는 뒤로 탐색 할 때와 앞으로 탐색 할 때 사용됩니다. Windows Phone에서는 앞으로 탐색 할 때 항상 새 인스턴스가 만들어집니다.

내 Windows 8 앱에서 NavigationCacheMode를 사용하도록 설정 한 후 메모리 사용과 관련된 몇 가지 문제가 발생하여 추적해야합니다.