2017-08-08 17 views
0

私はUWPのためにプリズムを使用しています。私はPrismUnityApplicationから私のアプリケーションをクラス分けしました。 NavigationService.Navigate UWPのプリズムで呼び出されたときのスロー例外

{"The page name HighlightsView does not have an associated type in namespace Panda.UWP.Views\r\nParameter name: pageToken"} 

が、私はビューという名前のフォルダを持っていると私は名前のビューを持っている、呼び出されると、プログラムが例外をスローし

NavigationService.Navigate("HighlightsView", null); 

私はOnLaunchApplicationAsyncをオーバーライドしてきたと私は呼んしようとしています、

ハイライトは、名前空間Panda.UWP.Viewsの下に表示されます。

ここに従う命名規則はありますか?ビューの名前をからハイライトビューハイライトページに変更すると、すべての機能が正常に動作しているようです。

答えて

2

するHighlightsView.xamlの名前を変更することで、ここで従うべき命名規則はありますか?

短い答えは「はい」です。 WindowsランタイムのプリズムにはViewModelLocatorオブジェクトが指定されており、ビューモデルのインスタンス化とそのビューへの関連付けを管理できます。このアプローチには、ビューモデルのインスタンス化を担当する単一のクラスがあるという利点があります。

ViewModelLocatorクラスでは、このプロパティがTrueに設定されると、ビューモデルとビューを関連付けます。ViewModelLocatorクラスでは、添付プロパティーが使用されます。大会の詳細についてはDave's Tech Blogを参照してください。

  • ビューモデルは、ビュータイプと同じアセンブリです。

  • ビューは.Viewsの子名前空間にあります。

  • 「ページ」で終わる名前を表示します。

  • ビューモデルは.ViewModelsの子名前空間にあります。

  • ビューモデル名はビュー名に対応し、 "ViewModel"で終わります。

ブログでは、参照できるプリズムのデフォルトの慣習を無効にする方法も提供しています。 Brian's blogにも、規約とその変更方法に関する同様のことが記載されています。

+0

私はすべての慣習が続いていると思います。第3のものを期待し、ビュー名は "Page"で終わります。私の質問で言及したように、私はUWPバージョンの古典的なアプリケーションコードの大部分を再利用しようとしています.wpfプリズムには "Page"で終わるビューに関する制約が含まれていないため、ブロックします。ビューとビューモデルを手動で配線する方法はありますか? – sudarsanyes

+1

@sudarsanyes私はそう思います。あなたはブライアンのブログの "それらの厄介な慣習を変える"セクションを試してください。 –

0

簡単な解決策はHighlightsViewPage.xaml

+1

はい、私はそれを実現し、私の質問で説明しました...しかし、ここでの大会は何ですか? – sudarsanyes

関連する問題