0

mainpage.xamlの場合、ローカルストレージをチェックします。メソッドGetAcceptがfalseを返す場合は、リダイレクトする必要がありますMentions.xamlが、問題は、このステップでNavigationServiceがNullであるため、nullreferenceexecptionをキャッチすることです。

        public MainPage()
        {
            CacheManager cache = new CacheManager();
            if (!cache.GetAccept())
            {
                NavigationService.Navigate(new Uri("/Views/AppBar/Mentions.xaml", UriKind.RelativeOrAbsolute));
            }
            InitializeComponent();
            }

このリダイレクトをどのように行うことができますか?

4

3 に答える 3

2

非常に最初にこのリンクをたどる

NavigationService、現在のページがLoadイベントを発生させたときにインスタンス化されます。ソリューションでは、Unが初期化NavigationServiceされていることが原因ですNullReference Exception。したがって、ページのロードイベントを手動で実行すると、NavigationServiceインスタンスが取得されます。次のコードは、ページのロードイベントを手動でロードするためのスニペットです。これは、pagesInitializeComponent()メソッドの直後に記述してください。

 this.Loaded += (sender, event) =>
  {
      var navigationService = NavigationService;
      navigationService.Navigate(new Uri("/Views/AppBar/Mentions.xaml", UriKind.RelativeOrAbsolute));
  };
于 2012-11-20T11:31:11.950 に答える
1

+ = =(送信者、イベント)を入力したようです。以下で行ったように、余分な=を削除する必要があります。

public MainPage() {

    InitializeComponent();
    CacheManager cache = new CacheManager();
    if (!cache.GetAccept())
    {            this.Loaded += (sender, event) =>{
        NavigationService.Navigate(new Uri("/Views/AppBar/Mentions.xaml", UriKind.RelativeOrAbsolute)); };
    } 
于 2012-11-20T13:37:55.870 に答える
0

構文を正しくする必要があります。以下に書いたものをコピーしてみてください。

this.Loaded += 
(
    (sender, event) =>
    {
        NavigationService.Navigate(new Uri("/Views/AppBar/Mentions.xaml",
            UriKind.RelativeOrAbsolute))
    }
);

余分な括弧がなく、そこに余分なセミコロンがスローされています。

于 2012-11-21T14:13:20.507 に答える