11

Windows8ストアアプリについて学び始めました。

以前のSilverlightとWPFプログラミングから、人々がMVVMの概念を採用したことを思い出しましたが、今では、当時学んだことを使用すべきかどうかわかりません。

GalaSoft.MvvmLightへの参照を追加し、ViewModelを作成して、次のように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="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" />

そのため、MVVMLightを使用して、覚えているとおりにModelViewを作成するか、コードビハインドファイルのデータをDefaultViewModelに追加するかがわかりません。

人々は両方でどのような経験をしますか?私は始めたばかりで、次の目標は、GridViewでアイテムがクリックされたときのハンドラーを追加することです-上記のパスのどれが簡単な方法でそうすることができますか?

4

4 に答える 4

15

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

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

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

で発見したコードは、このブログ投稿LayoutAwarePageで説明されています。これは、さまざまなスタブ実装を提供することにより、Windows8Metroアプリの開発を容易にする試みです。このページには、観察可能な辞書である、が含まれています。DefaultViewModel

個人的には使いません!

于 2012-09-16T06:52:51.880 に答える
4

いいえ、MVVMは死んでおらず、まだかなり生きています!!!

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

MVVMの使用はドグマではありません...ただし、XAMLアプリプログラミング[WPF、Silverlight、WP 7、およびWinRT ...]で多くの作業を行ったほとんどの人は、MVVMが、 GUIとバックエンドロジック。

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

さらにサンプル参照が必要な場合は、GillCleerenによる「MVVMinWindows8Store」でのウェビナーの次の録画をご覧ください。

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

于 2012-11-03T01:02:01.350 に答える
3

http://stylemvvm.codeplex.comをお勧めします。Metroプロジェクト(C#、C ++ / CX、HTML / JS)をサポートするためにゼロから作成されています。これには、完全なIOC、ICommandおよび添付コマンド動作の実装、タイル、バッジ、トースト、およびチャームのサービスが含まれます。また、ディスパッチャを認識する優れたメディエータクラスも含まれています。さらに、開始に役立つVisualStudioテンプレートがいくつかあります。

注:私はそれを書いたので偏見があるかもしれません:)

于 2012-10-06T20:47:57.187 に答える
3

MVVMはWindows8Metroアプリでは機能していません。

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

Microsoftは最近素晴らしいサンプルを公開しました。MVVMは明示的には書かれていませんが、始めるために必要なものがあります。そして、JoshSmithの記事はもちろんまだ役に立ちます。

于 2012-09-15T18:21:03.930 に答える