2017-12-13 21 views
0

응용 프로그램 언어를 변경하는 일부 코드가 내보기 모델에 있는데 일부 응용 프로그램 언어가 변경됩니다.UWP MVVM : 언어 변경 후 페이지 새로 고침

ApplicationLanguages.PrimaryLanguageOverride = languageCode; 
ResourceContext.GetForCurrentView().Reset(); 
ResourceContext.GetForViewIndependentUse().Reset(); 
NavigationService.Navigate(typeof(DashboardPage)); 

NavigationService.Navigate(typeof(DashboardPage));으로 내가 성공하지, 새로 고침 페이지를 강제로 시도 :

대시 보드 페이지의 데이터 컨텍스트로 설정되어있는 DashboardViewModel입니다. 어떻게하면 좋을까요?

+0

페이지 캐시를 지우셨습니까? https://stackoverflow.com/questions/32715690/c-sharp-change-app-language-programmatically-uwp-realtime –

+0

@ IgorŠevo 네, 같은 결과입니다. 문제는 'Navigate'메소드가 같은 페이지로 이동하지 않는다는 것입니다. 그러나 Windows Template Studio를 사용한 이후 NavigationService.cs 파일을 사용할 수 있으므로 Navigate 메서드가 수행하는 "같은 페이지 확인"을 수행하지 않는 다른 메서드를 추가했습니다. 나는 이것이 좋은 습관이 아니라고 확신하지만 그것은 효과가있다. :-) – Eutherpy

답변

0

NavigationService.Navigate() 같은 페이지로 이동하려는 경우 아무 것도하지 않습니다.

해결 방법은 강제로 탐색 요청에 매개 변수를 추가하는 것입니다.

NavigationService.Navigate(typeof(DashboardPage), "force refresh after language change"); 
+0

그건 나를 위해 작동하지 않습니다. – Eutherpy

0

이 줄은 매우 잘 작동합니다.

await Task.Delay(100); 
Frame.Navigate(this.GetType());