Slide 1

Slide 1 text

Data Binding

Slide 2

Slide 2 text

INotifyPropertyChanged

Slide 3

Slide 3 text

Typical ViewModel Property

Slide 4

Slide 4 text

One Way Binding PersonViewModel FirstName LastName DateOfBirth First Name Jon Last Name Doe Date of birth 12/07/1989

Slide 5

Slide 5 text

UI Syntax

Slide 6

Slide 6 text

Two Way Binding PersonViewModel FirstName LastName DateOfBirth First Name Jon Last Name Doe Date of birth 12/07/1989

Slide 7

Slide 7 text

UI Syntax

Slide 8

Slide 8 text

Value Conversion PersonViewModel FirstName LastName DateOfBirth First Name Jon Last Name Doe Age 24 “Age” Conversion

Slide 9

Slide 9 text

IMvxValueConverter

Slide 10

Slide 10 text

AgeValueConverter

Slide 11

Slide 11 text

UI Syntax

Slide 12

Slide 12 text

UI Syntax

Slide 13

Slide 13 text

Binding Actions PersonViewModel FirstName LastName DateOfBirth First Name Jon Last Name Doe Date of birth 12/07/1989 AddCommand

Slide 14

Slide 14 text

ICommand

Slide 15

Slide 15 text

Typical ViewModel Command

Slide 16

Slide 16 text

UI Syntax

Slide 17

Slide 17 text

Collections PeopleViewModel Hackers List Greg Jon Daniel Cool Hackers Jon @redth Greg @gshackles Daniel @dsplaisted Tomasz Tomasz @cheesebar

Slide 18

Slide 18 text

INotifyCollectionChanged

Slide 19

Slide 19 text

ObservableCollection

Slide 20

Slide 20 text

ViewModel Collection Property

Slide 21

Slide 21 text

UI Syntax

Slide 22

Slide 22 text

UI Syntax

Slide 23

Slide 23 text

UI Syntax

Slide 24

Slide 24 text

UI Syntax

Slide 25

Slide 25 text

Data-Binding to Sub-Objects • Works using normal . and [] chaining: • obeys INotifyPropertyChanged at every step

Slide 26

Slide 26 text

Samples DataBinding: https://github.com/slodge/MvvmCross-Tutorials/tree/master/TipCalc Collections: https://github.com/slodge/MvvmCross- Tutorials/tree/master/Working%20With%20Collections ValueConverters: https://github.com/slodge/MvvmCross- Tutorials/tree/master/ValueConversion