20
Teknologi for et bedre samfunn 1 Sirar Salih og Aslak Eide Hvordan strukturere en WPF applikasjon ved hjelp av Model- View-ViewModel (MVVM)

Sirar Salih og Aslak Eide

  • Upload
    imaran

  • View
    80

  • Download
    2

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn 1

Sirar Salih og Aslak Eide

Hvordan strukturere en WPF applikasjon ved hjelp av Model-View-ViewModel (MVVM)

Page 2: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn

1. Litt om oss og hva vi jobber med2. Model-View-ViewModel patternet3. DataBinding og Commands4. MVVM Light Toolkit rammeverket5. EventToCommand, RelayCommand, Messaging6. Demo

2

Innhold

Page 3: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn 3

SINTEF

Page 4: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn

• BRIDGE - Bridging resources and agencies in large-scale emergency management

• Nye løsninger for samhandling under ulykker

• 14 partnere fra 7 land. Tidsramme på 4 år

• Finansiert av EU 7th Framework Programme

4

BRIDGE prosjektet

Page 5: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn 5

Hva vi jobber med for tiden • Utvikler et kartbasert system som understøtter felles

situasjonsforståelse på tvers av nødetatene ved å gi en oppdatert oversikt over hendelsen.

Page 6: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn

• UI rammeverk for å utvikle "rich, interactive client applications"

• Extensible Application Markup Language (XAML)

6

Windows Presentation Foundation (WPF)

Page 7: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn

• Utbredt pattern for å understøtte: • Maintainability• Testability• Blendability

• Basert på Model-View-Controller (MVC)

7

Model-View-ViewModel (MVVM)

Page 8: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn 8

View

ViewModel

Model

User interface

The model of the view

Domain model

Page 9: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn

• For å etablere forbindelse mellom UI og business logic.• Gjør det mulig for Viewet å binde til properties i ViewModel.• Kontekst for binding settes i DataContext• Forbindelsen kan gå begge veier.

9

DataBinding

Page 10: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn

• Gjør det mulig å kalle en metode i ViewModel fra Viewet • Eksponerer en metode i ViewModel i form av en property • Kan være "DataBound" fordi den er en property• Implementasjon av ICommand interfacet

10

Commands

Page 11: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn 11

View

ViewModel

DataBinding

Model

Commands

Page 12: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn 12

MVVM rammeverk

Carbon MVVM

Cocktail

MVVM foundationCinch

MVVM Cross

Ocean

Core MVVM

Onyx

GoldlightReactive UI Catel

Jounce

Caliburn

Xomega

Prism

MVVM Light

Page 13: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn 13

MVVM Light Toolkit

• Breaking the monotony• Small and simple• Essentials library• Extras library • Project templates• Code snippets

Page 14: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn

• Interaction triggers gjør det mulig å definere en trigger for hvilken som helst event og binde denne til en Command

• EventToCommand er ekstrafunksjonalitet fra MVVM Light Toolkit som lar deg sende med EventArgs til ViewModel:

14

EventToCommand

Page 15: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn

• Alternativ til Command og RoutedCommand• Implementer ICommand interfacet• RelayCommand relayer Execute til en egendefinert metode • Man slipper å lage en egen klasse for hver custom Command

15

RelayCommand

Page 16: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn 16

Messaging

View

ViewModelView

ViewModel

View

ViewModelMessages

Messages

Page 17: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn 17

Messaging

Page 18: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn

• Utility klasse som alle ViewModels arver fra. • Minsker mengden kode man må skrive om igjen.• RaisePropertyChanged metode +++

18

ViewModelBase

Page 19: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn

• Nyttig når man jobber på multi-threaded WPF applikasjoner. • Gjør det mulig å kalle en metode på UI tråden fra en annen tråd.

19

DispatcherHelper

Page 20: Sirar Salih og Aslak Eide

Teknologi for et bedre samfunn 20

Demo