2

Windows ストアをサポートする MvvmCross アプリ用の新しいソリューションを作成しました。Windows 10 で UWP をサポートしたいと考えています。新しいナビゲーション/コマンド モデルに推奨されている SplitView と AppShell パターンを使用します。mvvmcrossを_ AppShell に有効なフレームが定義されていないため、起動に失敗しています。Frame は読み取り専用のプロパティであり、これが設定されている場所を確認できませんでした。

ブログ投稿で推奨されているように、NavigationMenu の標準の AppShell 実装を次のように変更して使用しています。

public sealed partial class AppShell : MvxWindowsPage // was Page

public Frame AppFrame { get { return this.Frame; } } // was this.frame

エラー後のコードを除いて、セットアップに違いはありません。MvxWindowsPage の実​​装を見ると、ページの初期化がまだ呼び出されているため、特別なことは何もないように見えます。私が見逃している明らかなものはありますか?

4

2 に答える 2

1

Microsoft が提供する SplitView テンプレートを使用して何をしようとしているのかがわかります。ただし、MvvmCross と UWP で管理されるものには不一致があります。

デフォルトでは、MvvmCross は命名規則に基づいて ViewModel を View にマップします。あなたがやろうとしているのはWindows.UI.Xaml.Controls.Page、デフォルトの MvvmCross 規則に準拠していないビュー 'AppShell' (から派生したもの) を使用することです。

この SplitView (ハンバーガー) 機能を実装するために選択した方法は、提供されたAppShellクラスを完全に削除することです。次に、という名前の新しいビューを作成しHomeView(という名前の ViewModel があるためHomeViewModel)、上記の投稿で説明されているように、そこに SplitView コントロールを追加しました。

完全を期すために、あなたが要求したようにApp.xaml.csとを含む Gist を作成しました。HomeView.xamlここで見つけることができます: https://gist.github.com/Stephanvs/7bb2cdc9dbf15cb7a90f

于 2015-11-21T01:01:03.730 に答える