model view viewmodel architecture. mvvm architecture components

15
Model View ViewModel Architecture

Upload: chad-jefferson

Post on 19-Jan-2018

230 views

Category:

Documents


0 download

DESCRIPTION

View (XAML) Views are visual elements, such as a window, a page, user control, or a data template. A View defines the controls contained in the view and their visual layout and styling. The controls in the view are data bound to the properties and commands exposed by the view model.

TRANSCRIPT

Page 1: Model View ViewModel Architecture. MVVM Architecture components

Model View ViewModel

Architecture

Page 2: Model View ViewModel Architecture. MVVM Architecture components

MVVM Architecture components

Page 3: Model View ViewModel Architecture. MVVM Architecture components

View (XAML)• Views are visual elements, such as a window, a

page, user control, or a data template. • A View defines the controls contained in the

view and their visual layout and styling.• The controls in the view are data bound to the

properties and commands exposed by the view model.

Page 4: Model View ViewModel Architecture. MVVM Architecture components

ViewModel

• The ViewModel encapsulates the presentation logic and data for the view.

• ViewModel knows nothing about the view's specific implementation or type.

• The ViewModel implements properties and commands to which the view can bind data and notifies the view of any state changes through change notification events.

Page 5: Model View ViewModel Architecture. MVVM Architecture components

ViewModel

• It provides data binding between View and model data as well as handles all UI actions by using command.

• The view model is responsible for coordinating the view's interaction with any model classes that are required.

• The view model may manipulate model data so that it can be easily consumed by the view.

Page 6: Model View ViewModel Architecture. MVVM Architecture components

Model

• The model encapsulates business logic and data.

Page 7: Model View ViewModel Architecture. MVVM Architecture components

Advantages of MVVM Pattern

• Separates the business and presentation logic

of the application from its UI.

• Allows developers and UI designers developing

their respective parts of the application.

• Makes it much easier to test, maintain, and

evolve.

Page 8: Model View ViewModel Architecture. MVVM Architecture components

MVVM Architecture : separation of concern

Designer

Developer

Page 9: Model View ViewModel Architecture. MVVM Architecture components

View-ViewModel interaction

The ViewModel implements properties and commands to which the view can data bind and notifies the view of any state changes through change notification events.

Page 10: Model View ViewModel Architecture. MVVM Architecture components
Page 11: Model View ViewModel Architecture. MVVM Architecture components

Data Binding and Commands

Page 12: Model View ViewModel Architecture. MVVM Architecture components

How it works ?

1. User interaction is translated by passing a call to the

ViewModel via Command.

2. ViewModel manipulate data in the model

3. Model fires events for changes in a property of a model class.

4. ViewModel will fire further the event .

5. View will consume this event and update its content

accordingly.

Page 13: Model View ViewModel Architecture. MVVM Architecture components

Search Command Example

Page 14: Model View ViewModel Architecture. MVVM Architecture components

Show Command Example

Page 15: Model View ViewModel Architecture. MVVM Architecture components

Select command Example