2012-09-15 9 views
11

私はWindows 8 Store Appsについて学び始めました。Windows 8のストアアプリでMVVMが死んでいますか?

以前のSilverlightとWPFプログラミングから、人々がMVVMのコンセプトを採用したことを思い出しましたが、私が以前学んだことを使うべきかどうかは不明です。

私はGalaSoft.MvvmLightへの参照を追加し、ビューモデルを作成し、によって示唆されているように私のXAMLにこれを追加しました:

DataContext="{Binding Source={StaticResource Locator}, Path=Welcome}" 

MicrosoftはLayoutAwarePageでのModelView実装のいくつかの種類が含まように見えます:

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) 
{ 
    // TODO: Assign a bindable collection of items to this.DefaultViewModel["Items"] 
    // DefaultViewModel["WelcomeTiles"] = WelcomeTiles; 
} 

次のdatacontextが設定されているとアクセスできます。私はそれらを覚えているようMVVMLightを使用することにより、ModelViewsを作成するか、または単にDefaultViewModelにコードビハインドファイルにデータを追加する必要がある場合

<DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" /> 

は、だから今、私はわかりませんよ。

両方の人は何を体験していますか?私はちょうど始めて、私の次の目標は、アイテムがGridViewでクリックされたときにハンドラを追加することです - 上のパスのどれを簡単な方法でそうするのですか?

答えて

15

いいえ、MVVMは決して死ぬことはありません!

Model-View-ViewModelはデザインパターンなので、特定のフレームワークや実装に依存しません。ただし、データバインドをサポートするUIフレームワークで使用するのが最も便利なUIデザインパターンです。

Windows 8 Metroアプリケーションには、SilverlightとWPFによく似たXAMLとバインディングフレームワークが含まれています。このため、MVVMはコード管理のための優れた選択肢です。

LayoutAwarePageで発見したコードは、this blog postに記載されています。さまざまなスタブ実装を提供することで、Windows 8 Metroアプリケーションの開発を容易にする試みです。このページには、観察可能な辞書であるDefaultViewModelが含まれています。

個人的には、私はそれを使用しません!

+1

、私はギルCleerenによって「Windows 8のストアでMVVM」に関するセミナーを下記の 記録を見てすることを勧めますそれ以上にabitしてください。今、私は新しいページを作成するときにViewModelを作成し、それに対してデータバインドを行います。しかし、コンセプトや迅速なデモンストレーションのために、私はVisual StudioテンプレートをクリックしてdefaultViewModelを使うだけで簡単に見つけました。コメントしてくれてありがとう。 –

3

Windows 8 MetroアプリケーションでMVVMが死んでいない。

私たちのアプリではMvvmLightは使用しませんでしたが、ViewModelプロパティへのバインド、ViewModelとINotifyPropertyChangedでのICommandsの使用など、必要な基本コンポーネントは、ごくわずかな変更(存在する場合)で利用できます。

Microsoftは最近nice sampleを公開しました。 MVVMを明示的に言うわけではありませんが、あなたが始めるために必要なものがあります。そして、ジョシュ・スミスのarticleはもちろん、まだ有用です。

2

私はをお勧めします。これは地下からプロジェクト(C#、C++/CX、HTML/JS)をサポートするために書かれています。これには、IOC、ICommand &添付コマンド・ビヘイビア、タイル・サービス、バッジ、トースト、チャームの実装が含まれます。また、ディスパッチャを意識した素敵なMediatorクラスも含まれています。さらに、ビジュアルスタジオテンプレートをいくつか用意しています。

注:私はそれを書いたので、私はバイアスされることがあります:)

+1

私はあなたに今upvoteを与え、後でそれをチェックします:) –

4

いやMVVMは死んでいないとまだかなり生きています!

MVVMのColinE定義は、それを再開します。 実際MVVMは基本的にデザインパターンであり、特定のフレームワークに依存しません。 MVVMを使用して

は教義ではありません...、XAMLアプリのプログラミングで多くを働いた人で最もしかし [WPF、Silverlightの、WP 7とWinRTの...] MVVMが本当に懸念の明確なSOCの分離を容易にすることに同意します、 GUIとバックエンドロジックの開発の間に。

Laurent BugnionのMVVMLightパッケージをWinRTと組み合わせてNugetから個人的に使用しましたが、他のMVVMパッケージやオプションを自由に使用することは自由です。

あなたは、さらにサンプル、参考文献が必要な場合は、私が探してきた

http://www.silverlightshow.net/video/MVVM-in-Win8-Webinar.aspx

関連する問題