Template10 NavigationService为null

时间:2016-09-13 22:07:31

标签: c# xaml uwp template10

这是我的App.xaml.cs

[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 verificata     的HResult = -2147467261     Message =对象引用未设置为对象的实例。

NavigationService始终为null。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

我有类似的问题,但在ViewModel内部不在App.xaml.cs中。

因此,当我在视图后面的代码中定义并初始化NavigationService属性时,ViewModel为空。

解决方案是在xaml(<Page.DataContext>)中定义ViewModel,然后一切都像魅力一样。

答案 1 :(得分:0)

对于任何回到这里的人,我遇到了问题,并意识到,如果我保留项目10586的最低版本,问题就会消失。

答案 2 :(得分:0)

当我将项目的目标最低版本更新为Fall Creators Update时,我遇到了同样的问题。

阅读this线程后,我通过将project properties的Nuget依赖项从版本Newtonsoft.Json更新为11.x.x来解决了这个问题。

为了清楚起见,我降级了10.0.3 Nuget依赖项的版本。