- Usually just shows stuff on screen
- Consumes data from ViewModel
- Bind properties to the ViewModel
- Two way binding
- Data on the ViewModel is shown
- Activations on the View are sent to the ViewModel
- Implement the properties and commands the View can bind to
- Notifies the View of state changes through events (IObservable)
- Coordinate View interaction with Models
- Can act as a "conversion layer" between the raw Model data and the View
- For example, combining two Model properties
- Non visual classes that encapsulate domain's data and business and validation lgic.
- A run-time decision to connect ViewModels to View
- View-first composition
- App composed of Views
- They connect to the ViewModels they depend on
- The ViewModels do not have a dependency on the Views themselves
- More natural way
- ViewModel-first composition
- App composed of ViewModels
- A service locates Views for a given ViewModel
- Views and ViewModels should be kept independent as much as possible
- BindingContext
- Property of BindableObject
-
Efl.Model.eo
- Interface
- Store named properties
- Can have
Efl.Object
s as children- Allows complex hierarchies
- Emits events
properties,changed
- Properties become ready or changed values.child,[added,removed]
- Child handling
-
Efl.Loop_Model
- Implements
Efl.Model
- Uses Eo reflection to set properties
volatile_make
as helper to auto unref childs
- Implements
Efl.Ui.View.eo
- Single
model
get/set property
- Single
Efl.View_Model.eo
- Extends
Efl.Composite_Model
- Extends Efl.Loop_Model
- Extends Efl.Loop_Consumer
- Implements Efl.Model
- Method volatile_make
- Registers this model to be deleted if their only ref is their parent's one.
- Implements Efl.Ui.View
- Property: Index
- Extends Efl.Loop_Model
- Extends