atelier:mitsuba

i love UI/UX, Blend, XAML, Behavior, P5, oF, Web, Tangible Bits and Physical computing. なにかあればお気軽にご連絡ください。atelier@c-mitsuba.com

Universal Windows PlatformをBlankテンプレートから作るときの下準備

UWPのアプリを作ろうとすると、まだテンプレートがBlankしか無いので、下準備をします。
今回はその普段やってる下準備の紹介。
環境はUWP+R#er+MVVMLight
1.まずプロジェクトを作った時の構成
f:id:c-mitsuba:20151203135549p:plain
2.次にViewフォルダとViewModelフォルダとCommonフォルダを作って、ViewModelEx.csとMainViewModel.csを作って、それぞれに配置
f:id:c-mitsuba:20151203135553p:plain
3.MainPage.xaml.csを開いて、namespaceにカーソルを当てて、alt+enterでR#erの機能でnamespaceを変更
f:id:c-mitsuba:20151203135556p:plain
f:id:c-mitsuba:20151203135601p:plain
4.nugetから、既存のパッケージの更新
f:id:c-mitsuba:20151203135621p:plain
f:id:c-mitsuba:20151203135631p:plain
5.mvvmlightを追加。あとは必要に応じてReactivePropertyとか使ったり
f:id:c-mitsuba:20151203135641p:plain
6.Commonに作ったViewModelExにINotifyPropertyChangedを継承
f:id:c-mitsuba:20151203135717p:plain
7.赤い波線がでるので、R#erの機能でPropertyChangedのイベントを生やす
f:id:c-mitsuba:20151203135722p:plain
f:id:c-mitsuba:20151203135737p:plain
f:id:c-mitsuba:20151203135733p:plain
8.R#erにAnnotationを作成してもらう
f:id:c-mitsuba:20151203135726p:plain
f:id:c-mitsuba:20151203135730p:plain
9.ViewModelBaseExに継承したINotifyPropertyChangedを外して、ViewModelBaseを継承
ようはAnnotationを作るためだけに一旦継承しただけ
f:id:c-mitsuba:20151203140856p:plain
10.MainViewModelにはViewModelBaseExを継承
f:id:c-mitsuba:20151203135741p:plain
11.こうしておくと、prop tab tabでプロパティを生やして、
f:id:c-mitsuba:20151203135744p:plain
12.alt + enterでOnPropertyChangedをつけてくれるようになる。
f:id:c-mitsuba:20151203135747p:plain
f:id:c-mitsuba:20151203135751p:plain
13.最後にMainPage.xamlに、デザイン用のデータコンテキストを設定

 d:DataContext="{d:DesignInstance ViewModel:MainViewModel}"

すると、インテリセンスにプロパティが出てくるので便利
f:id:c-mitsuba:20151203135758p:plain

番外編.
毎回やるのはだるいので、「ファイル」から「テンプレートのエクスポート」をしておくと楽ですね。
f:id:c-mitsuba:20151203141632p:plain
テンプレート化したいプロジェクトを選んで、次へ
f:id:c-mitsuba:20151203141639p:plain
名前つけて完了
f:id:c-mitsuba:20151203141642p:plain
すると、「Visual C#」のタグにテンプレートが設置されます。
f:id:c-mitsuba:20151203141647p:plain
プロジェクトを作ると、よしなに名前が変わったプロジェクトができます。
とりあえずビルドして、nugetのパッケージの復元をします。
f:id:c-mitsuba:20151203142409p:plain
ビルドすると参照にmvvmlightが追加されているはずですが、ビルドは通るけど、参照が更新されない時もあって、コードが真っ赤になる時があります。
そんな時はVSを再起動するか、プロジェクトの再読み込みを試してください。