1

実装するビューモデルがIConfirmNavigationRequestあり、このビューモデルから、特定のビューまたはビューモデルに結合されていないナビゲーション ブローカー クラスに情報を渡す必要があります。

代わりに、ナビゲーション ブローカ クラスは、対象の と にアクセスできIRegionますIRegionNavigationService

ViewModel URI へのパラメーターの追加

    public override void ConfirmNavigationRequest(NavigationContext navigationContext,
                                                  Action<bool> continuationCallback)
    {
        _verificationCount++;
        navigationContext.Parameters.Add("Count", _verificationCount.ToString());
        continuationCallback(Verify());
    }

渡されたパラメーターにアクセスする必要があるナビゲーション ブローカー

    // Some method
    _region.RequestNavigate(new Uri(_nextView, UriKind.Relative), NavigationCallback);

    private void NavigationCallback(NavigationResult navigationResult)
    {            
        if (navigationResult.Error == null)
        {
            if (navigationResult.Result == true)
            {
                // Need to evaluate the Count argument here
                // int count = ...
                // if (count < 5)
                QueueNextView();                     
            } else
            {
                Debug.WriteLine("Navigation Cancelled");
            }
        }
        else
        {
             Debug.WriteLine("Navigation Error");                
        }
    }

ViewModel外のRegionまたはNavigationServiceを介してパラメータにアクセスする方法は?

  • またはからアクセスNavigationContextする方法が見つかりません。NavigationServiceRegion
  • 私もこれを試しまし_region.NavigationService.Journal.CurrentEntry.Uri.OriginalStringたが、クエリ情報は表示されず、登録されたビュー文字列名だけが表示されました
4

1 に答える 1

0

アグスティン・アダミはここで答えを提供しました

navigationResult.Context.Parameters["Count"];
于 2012-05-31T09:33:44.957 に答える