2017-01-18 4 views
0

私は、PageHeader(Template 10フレームワークで)のShellBackButtonを使うのはすばらしいことだと思ったが、Backナビゲーションはページを更新しない。ページフレームは変更されますが、ページには何も表示されません。ShellBackButtonUpdatedイベントを含むShellBackButtonとは、Template 10のためのものですか?

ShellBackButtonがナビゲーションシステムにリンクされていないためですか?もしそうなら、ShellBackButton(およびShellBackButtonUpdated)をどのように動作させるのですか?

ビューページXAML(ビューモデルのページへの配線)に[コメントに基づいて、よりINFO WITH UPDATE]

:ビューページのコードビハインドで

<Page.DataContext> 
    <vm:DetailPageViewModel x:Name="ViewModel" /> 
</Page.DataContext> 

:戻るボタンをヒット上書きWindows.UI.Xaml.Navigationイベントのviewmodelページで

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    // BackButton hits this event as well as OnNavigatingFrom(NavigatingCancelEventArgs e) 
    // and OnNavigatedFrom(NavigationEventArgs e) 
} 

(Template10.Mvvm.ViewModelBaseを継承):

public class DetailPageViewModel : Template10.Mvvm.ViewModelBase 
{ 
    // Navigation now takes place via overridden methods in 
    // Template10.Services.NavigationService.INavigable 
} 

これはより明確にすると私の元に、より具体的なサブ問題を提起:

あなたは、現在のビューでWindows.UI.Xaml.Navigationナビゲーションイベントを打つShellBackButtonを行うことができますどのようにページ、INSTEADヒットTemplate10.Services.NavigationService.INavigable view-modelのナビゲーションイベント?これができれば(私にはわからない)、問題は解決されます。

+0

あなたのページを単にナビゲーションツールとして更新するようには設計されていないため、ページの更新は開発者の責任で行ってください。返信用の – mvermef

+0

tnxs。ページをviewmodelに変更する前に、ボタンが期待どおりに機能していました。それはviewmodelではなくviewで動作することを意味しますか? – user2921851

+0

どのようにViewModelsを配線し、ベース継承は何ですか?ビューモデルについてページにどのように伝えていますか?既存の質問をこれらの質問の回答で更新してください。 – mvermef

答えて

0

これで、ページのコードの後ろにあるオーバーライドを取り除くことができます。ほとんどすべてPagesはコンストラクタを除いてコードビハインドでほぼ空白になります。

これはHamburgerMenuShellPageでコードビハインドで行わたくさんあるが、それはそれに特化していますので、ビュー関連のものはここに配置することができないという意味ではありません。

次に、オーバーライドをviewmodelに配置して、問題を解決する必要があります。ページのDatacontextはあなたが定義したビューモデルになっているので、あなたはそのサービスを混乱させていました。少なくとも、ビューモデルが実際には設定されていないため、オーバーライドが存在することはわかりません。

Template10.MVVM.ViewModelBaseは今、あなたは非同期味は、おそらく離れて行くのバージョンが来るでいることを心に留めておく、合計でOnNavigateToAsyncOnNavigateFromAsyncのための1を少なくとも2つのオーバーライドを持つことになりますので、継承されたINavigableを持っています。

ギャラリーからTemplate10 vsixをインストールしたと仮定しました。これにはViewModelsとコードスニペットのテンプレートもインストールされているはずです。

HTH、

モルガン。

+0

。ビューページのコードビハインドは、初期化を除いて空白です。 Windows.UI.Xaml.Navigationのオーバーライドを示して、その点を説明しました。私はあなたに従っています。私のビューページとビューモデルは、あなたが言うようにです。問題はShellBackButtonタップです。viewModelのナビゲーションハンドラーにヒットしませんが、ページが変更され、コンストラクターにヒットします(ShellBackButtonは、ビューページのFrameオブジェクトによってPageHeaderとしてShellBackButtonがFrameにバインドされています)。ビューのページはすべて完璧ですが、ViewModelのNavはShellBackButtonを知らないようです。それはテンプレート10の開発者が監視することができますか? – user2921851

+0

あなたはどのテンプレートをT10で使用していますか?ハンバーガー、最小、空白? – mvermef

+0

私はハンバーガープロジェクトのバージョンを使用しています。私はちょっと前にこの問題を発見したと思う。 Intellisenseは、NavigationService.FrameをNavigationService.FrameFacadeに変更することを提案しました。私はそれに従いました。これが問題の開始方法です(私は思っています)。私はすべてをチェックし、何が起こっているのかを投稿します。 ShellBackButtonはビュー・ページのようにviewmodelで作業を開始したので、これは問題だと思います。 – user2921851

関連する問題