200 likes | 384 Views
Sirar Salih og Aslak Eide. Hvordan strukturere en WPF applikasjon ved hjelp av Model-View-ViewModel (MVVM ). Innhold. Litt om oss og hva vi jobber med Model-View- ViewModel patternet DataBinding og Commands MVVM Light Toolkit rammeverket EventToCommand , RelayCommand , Messaging
E N D
Sirar Salih og Aslak Eide Hvordan strukturere en WPF applikasjon ved hjelp av Model-View-ViewModel(MVVM)
Innhold • Littomoss og hva vi jobber med • Model-View-ViewModelpatternet • DataBinding og Commands • MVVM Light Toolkit rammeverket • EventToCommand, RelayCommand, Messaging • Demo
BRIDGE prosjektet • BRIDGE - Bridging resources and agencies in large-scale emergency management • Nye løsningerfor samhandling under ulykker • 14 partnerefra 7 land. Tidsrammepå 4 år • FinansiertavEU 7th Framework Programme
Hva vi jobber med for tiden • Utvikler et kartbasertsystem somunderstøtterfellessituasjonsforståelsepåtversavnødetateneved å gi en oppdatertoversikt over hendelsen.
Windows Presentation Foundation (WPF) • UI rammeverk for å utvikle "rich, interactive client applications" • ExtensibleApplication Markup Language (XAML)
Model-View-ViewModel (MVVM) • Utbredt pattern for å understøtte: • Maintainability • Testability • Blendability • Basertpå Model-View-Controller(MVC)
View User interface ViewModel The model of the view Model Domain model
DataBinding • For å etablereforbindelsemellom UI og business logic. • Gjørdetmulig for Viewet å bindetilproperties iViewModel. • Kontekst for binding settesiDataContext • Forbindelsenkangåbeggeveier.
Commands • Gjørdetmulig å kalle en metodeiViewModelfraViewet • Eksponerer en metodeiViewModeli form av en property • Kanvære "DataBound" fordi den er en property • ImplementasjonavICommandinterfacet
View Commands DataBinding ViewModel Model
MVVM rammeverk Cocktail Caliburn Xomega Carbon MVVM MVVM Cross Onyx MVVM Light MVVM foundation Jounce Cinch Core MVVM Ocean Goldlight Prism Reactive UI Catel
MVVM Light Toolkit • Breaking the monotony • Small and simple • Essentials library • Extras library • Project templates • Code snippets
EventToCommand • Interaction triggers gjørdetmulig å definere en trigger for hvilkensomhelst event og bindedennetil en Command • EventToCommanderekstrafunksjonalitetfra MVVM Light Toolkit somlardegsende med EventArgstilViewModel:
RelayCommand • Alternativtil Command ogRoutedCommand • Implementer ICommandinterfacet • RelayCommandrelayer Execute til en egendefinertmetode • Man slipper å lage en egenklasse for hver custom Command
Messaging View View View Messages Messages ViewModel ViewModel ViewModel
ViewModelBase • Utility klassesomalleViewModelsarverfra. • Minskermengdenkode man måskriveomigjen. • RaisePropertyChangedmetode+++
DispatcherHelper • Nyttignår man jobber på multi-threaded WPF applikasjoner. • Gjørdetmulig å kalle en metodepå UI trådenfra en annentråd.