2016-09-13 3 views
0

이 내 App.xaml.cs를Template10 NavigationService가 null

[Bindable] 
sealed partial class App : Template10.Common.BootStrapper 
{ 
    public App() 
    { 
     InitializeComponent(); 
     SplashFactory = (e) => new Views.Splash(e); 

     var _settings = SettingsService.Instance; 
     RequestedTheme = _settings.AppTheme; 
     CacheMaxDuration = _settings.CacheMaxDuration; 
     ShowShellBackButton = _settings.UseShellBackButton; 
    } 

    public override async Task OnInitializeAsync(IActivatedEventArgs args) 
    { 
     if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar")) 
     { 
      var statusBar = StatusBar.GetForCurrentView(); 
      await statusBar.HideAsync(); 
     } 

     await Task.CompletedTask; 
    } 

    public override async Task OnStartAsync(StartKind startKind, IActivatedEventArgs args) 
    { 
     NavigationService.Navigate(typeof(Views.MainPage)); // Exception here 
     await Task.CompletedTask; 
    } 
} 

내가 응용 프로그램을 실행할 때마다 내가이 예외 얻을 수 있습니다 :

System.NullReferenceException HRESULT = -2147467261 메시지 verificata을 = 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

NavigationService는 항상 null입니다.

어떻게 해결할 수 있습니까?

+0

코드를 테스트 한 결과 잘 작동합니다. 게시 한 코드가 옳습니다. 나는 그 문제가 여기 없을 수도 있다고 생각한다. 문제를 재현 할 수있는 [mcve]를 공유 할 수 있습니까? 또는 Minimal Template 10 프로젝트로 코드를 테스트하면 작동 할 수 있습니다. –

+0

만약 내가 새 프로젝트를 만들면이 코드는 잘 동작한다. – frenk91

답변

0

나는 비슷한 문제가 있었지만, ViewModel은 App.xaml.cs.에 없었습니다.

그래서 ViewModel을 정의한 후 코드 숨김으로 속성을 초기화 할 때 NavigationService이 null입니다.

해결책은 xaml (<Page.DataContext>)에 ViewModel을 정의하는 것이고 모든 것은 매력처럼 작동합니다.