2012-09-15 14 views
11

Zacząłem uczyć się o aplikacjach Sklepu Windows 8.Czy MVVM nie działa w Windows 8 Store Apps?

Przypominam sobie z programowania Silverlight i WPF wcześniej, że ludzie zaadaptowali koncepcję MVVM, a teraz nie jestem pewien, czy powinienem użyć tego, czego się wtedy nauczyłem, czy nie.

I dodaje odniesienie do GalaSoft.MvvmLight i stworzył ViewModel i dodaje go do mojego XAML jak sugeruje:

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

Wygląda Microsoft zawarte jakieś realizacji ModelView w LayoutAwarePage:

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

, do których można uzyskać dostęp, jeśli podano następujący format danych.

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

Więc teraz jestem pewien, czy należy utworzyć ModelViews jak ja je zapamiętać, stosując MVVMLight lub po prostu dodać dane w plikach kodu źródłowego do DefaultViewModel.

Jakie są zalety obu tych osób? Właśnie zacząłem, a moim następnym celem jest dodanie modułów obsługi po kliknięciu elementu w GridView - która z powyższych ścieżek pozwoli to zrobić w łatwy sposób?

Odpowiedz

15

Nie, MVVM nigdy nie umrze!

Model-View-ViewModel to wzorzec projektowy, więc nie jest zależny od określonej struktury lub implementacji. Jest to jednak wzorzec projektowania interfejsu użytkownika, który jest najwygodniejszy w użyciu w ramach interfejsu użytkownika obsługujących wiązanie danych.

Aplikacje Windows 8 Metro zawierają XAML i wiążący framework podobny do Silverlight i WPF. Z tego powodu MVVM jest doskonałym wyborem do zarządzania Twoim kodem.

Kod, który odkryłeś w LayoutAwarePage jest opisany w this blog post. Jest to próba uczynienia rozwoju aplikacji Windows 8 Metro łatwiejszą dzięki zapewnieniu różnych implementacji kodu pośredniczącego. Ta strona zawiera DefaultViewModel, który jest obserwowalnym słownikiem.

Osobiście nie użyłbym tego!

+1

czekałem abit więcej do tego. Teraz jestem, kiedy tworzę nową stronę, także tworząc ViewModel i databind przeciw temu. Ale dla prof pojęcia i wykonanie szybkiej demonstracji, okazało się bardzo łatwo po prostu kliknij szablon Visual Studio i użyj defaultViewModel. Dziękuję za twoje komentarze. –

3

MVVM nie jest martwy w aplikacjach Windows 8 Metro.

Nie używaliśmy MvvmLight w naszej aplikacji, ale podstawowe elementy potrzebne, takie jak powiązanie z właściwościami ViewModel, używanie ICommands w ViewModel i INotifyPropertyChanged, są dostępne z bardzo małymi zmianami (jeśli są).

Firma Microsoft opublikowała niedawno model nice sample. Nie mówi wprost MVVM, ale ma to, czego potrzebujesz, aby zacząć. A Josh Smith's article jest oczywiście nadal przydatny.

2

Polecam http://stylemvvm.codeplex.com, jest napisany od podstaw w celu wspierania projektów metra (C#, C++/CX, HTML/JS). Zawiera pełną IOC, implementację ICommand & Attached Command Behaviors, Usługi dla Płytek, odznaki, Tosty i Uroki. Zawiera również ładną klasę Mediator, która jest świadoma dyspozytora. Plus kilka szablonów wizualnych studio, które pomogą Ci zacząć.

Uwaga: mogę być nieobiektywna, ponieważ pisałem to :)

+1

Dam ci teraz upvote i sprawdź to później :) –

4

Nope MVVM nie jest martwy i wciąż jest dość żywy !!!

Coline defintion z MVVM wznawia ją całkiem dobrze. Rzeczywiście, MVVM jest po prostu wzorcem projektowym i nie jest zależna od konkretnego szkieletu.

Korzystanie z MVVM nie jest dogmą ..., chociaż większość osób, które dużo pracowały przy programowaniu aplikacji XAML [WPF, Silverlight, WP 7 i WinRT ...] zgodzi się, że MVVM naprawdę ułatwia wyraźne oddzielenie SOC , między rozwinięciem GUI a logiką zaplecza.

Osobiście użyłem pakietu MVVMLight Laurent Bugnion firmy Nuget w połączeniu z WinRT, ale możesz używać dowolnego innego pakietu MVVM lub opcji, z którą czujesz się swobodnie.

Jeśli potrzebujesz dalszych bibl przykładowe, chciałbym zaprosić was do obejrzenia na poniższym nagrania z seminarium na temat „MVVM w Windows 8 Store” Gill Cleeren

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

Powiązane problemy