CSLA.NET 6.0.0
CSLA .NET is a software development framework that helps you build a reusable, maintainable object-oriented business layer for your app.
Csla.Xaml.ViewModelBase< T > Class Template Reference

Base class used to create ViewModel objects that implement their own commands/verbs/actions. More...

Inheritance diagram for Csla.Xaml.ViewModelBase< T >:
Csla.Xaml.IViewModel Csla.Xaml.ViewModel< T > Csla.Test.ViewModelTests.TestViewModel< T >

Public Member Functions

virtual async Task< T > RefreshAsync< F > (Func< Task< T > > factory)
 Creates or retrieves a new instance of the Model by invoking an action. More...
 
virtual async Task< T > SaveAsync ()
 Saves the Model, first committing changes if ManagedObjectLifetime is true. More...
 

Static Public Attributes

static readonly DependencyProperty ModelProperty
 Gets or sets the Model object. More...
 
static readonly DependencyProperty ManageObjectLifetimeProperty
 Gets or sets a value indicating whether the ViewModel should automatically managed the lifetime of the Model. More...
 

Protected Member Functions

virtual void DoCancel ()
 Cancels changes made to the model if ManagedObjectLifetime is true. More...
 
virtual object DoAddNew ()
 Adds a new item to the Model (if it is a collection). More...
 
virtual void DoRemove (object item)
 Removes an item from the Model (if it is a collection). More...
 
virtual void DoDelete ()
 Marks the Model for deletion (if it is an editable root object). More...
 
virtual void OnModelChanged (T oldValue, T newValue)
 Invoked when the Model changes, allowing event handlers to be unhooked from the old object and hooked on the new object. More...
 
void UnhookChangedEvents (T model)
 Unhooks changed event handlers from the model. More...
 
virtual void OnSetProperties ()
 Override this method to hook into to logic of setting properties when model is changed or edited. More...
 
virtual void OnPropertyChanged (string propertyName)
 Raise the PropertyChanged event. More...
 

Properties

Model [getset]
 Gets or sets the Model object. More...
 
bool ManageObjectLifetime [getset]
 Gets or sets a value indicating whether the ViewManageObjectLifetime should automatically managed the lifetime of the ManageObjectLifetime. More...
 
bool IsBusy [getprotected set]
 Gets a value indicating whether this object is executing an asynchronous process. More...
 
virtual bool IsDirty [getprotected set]
 Gets a value indicating whether the Model has been changed. More...
 
virtual bool IsValid [getprotected set]
 Gets a value indicating whether the Model is currently valid (has no broken rules). More...
 
virtual bool CanSave [getprotected set]
 Gets a value indicating whether the Model can currently be saved. More...
 
virtual bool CanCancel [getprotected set]
 Gets a value indicating whether the Model can currently be canceled. More...
 
virtual bool CanCreate [getprotected set]
 Gets a value indicating whether an instance of the Model can currently be created. More...
 
virtual bool CanDelete [getprotected set]
 Gets a value indicating whether the Model can currently be deleted. More...
 
virtual bool CanFetch [getprotected set]
 Gets a value indicating whether an instance of the Model can currently be retrieved. More...
 
virtual bool CanRemove [getprotected set]
 Gets a value indicating whether the Model can currently be removed. More...
 
virtual bool CanAddNew [getprotected set]
 Gets a value indicating whether the Model can currently be added. More...
 
virtual bool CanCreateObject [getprotected set]
 Gets a value indicating whether the current user is authorized to create a Model. More...
 
virtual bool CanGetObject [getprotected set]
 Gets a value indicating whether the current user is authorized to retrieve a Model. More...
 
virtual bool CanEditObject [getprotected set]
 Gets a value indicating whether the current user is authorized to save (insert or update a Model. More...
 
virtual bool CanDeleteObject [getprotected set]
 Gets a value indicating whether the current user is authorized to delete a Model. More...
 
- Properties inherited from Csla.Xaml.IViewModel
object Model [getset]
 Gets or sets the Model property of the viewmodel object. More...
 

Events

PropertyChangedEventHandler PropertyChanged
 Event raised when a property changes. More...
 

Detailed Description

Base class used to create ViewModel objects that implement their own commands/verbs/actions.

Template Parameters
TType of the Model object.

Definition at line 37 of file Csla.Xaml.Shared/ViewModelBase.cs.

Member Function Documentation

◆ DoAddNew()

virtual object Csla.Xaml.ViewModelBase< T >.DoAddNew ( )
protectedvirtual

Adds a new item to the Model (if it is a collection).

Definition at line 633 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ DoCancel()

virtual void Csla.Xaml.ViewModelBase< T >.DoCancel ( )
protectedvirtual

Cancels changes made to the model if ManagedObjectLifetime is true.

Definition at line 583 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ DoDelete()

virtual void Csla.Xaml.ViewModelBase< T >.DoDelete ( )
protectedvirtual

Marks the Model for deletion (if it is an editable root object).

Definition at line 666 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ DoRemove()

virtual void Csla.Xaml.ViewModelBase< T >.DoRemove ( object  item)
protectedvirtual

Removes an item from the Model (if it is a collection).

Definition at line 656 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ OnModelChanged()

virtual void Csla.Xaml.ViewModelBase< T >.OnModelChanged ( oldValue,
newValue 
)
protectedvirtual

Invoked when the Model changes, allowing event handlers to be unhooked from the old object and hooked on the new object.

Parameters
oldValuePrevious Model reference.
newValueNew Model reference.

Definition at line 678 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ OnPropertyChanged()

virtual void Csla.Xaml.ViewModelBase< T >.OnPropertyChanged ( string  propertyName)
protectedvirtual

Raise the PropertyChanged event.

Parameters
propertyNameName of the changed property.

Definition at line 787 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ OnSetProperties()

virtual void Csla.Xaml.ViewModelBase< T >.OnSetProperties ( )
protectedvirtual

Override this method to hook into to logic of setting properties when model is changed or edited.

Definition at line 742 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ RefreshAsync< F >()

virtual async Task< T > Csla.Xaml.ViewModelBase< T >.RefreshAsync< F > ( Func< Task< T > >  factory)
virtual

Creates or retrieves a new instance of the Model by invoking an action.

Parameters
factoryFactory method to invoke

Definition at line 531 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ SaveAsync()

virtual async Task< T > Csla.Xaml.ViewModelBase< T >.SaveAsync ( )
virtual

Saves the Model, first committing changes if ManagedObjectLifetime is true.

Definition at line 551 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ UnhookChangedEvents()

void Csla.Xaml.ViewModelBase< T >.UnhookChangedEvents ( model)
protected

Unhooks changed event handlers from the model.

Parameters
model

Definition at line 710 of file Csla.Xaml.Shared/ViewModelBase.cs.

Member Data Documentation

◆ ManageObjectLifetimeProperty

readonly DependencyProperty Csla.Xaml.ViewModelBase< T >.ManageObjectLifetimeProperty
static
Initial value:
=
DependencyProperty.Register("ManageObjectLifetime", typeof(bool),
typeof(ViewModelBase<T>), new PropertyMetadata(true))

Gets or sets a value indicating whether the ViewModel should automatically managed the lifetime of the Model.

Definition at line 92 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ ModelProperty

readonly DependencyProperty Csla.Xaml.ViewModelBase< T >.ModelProperty
static
Initial value:
=
DependencyProperty.Register("Model", typeof(T), typeof(ViewModelBase<T>),
new PropertyMetadata((o, e) =>
{
var viewmodel = (ViewModelBase<T>)o;
viewmodel.OnModelChanged((T)e.OldValue, (T)e.NewValue);
}))

Gets or sets the Model object.

Definition at line 66 of file Csla.Xaml.Shared/ViewModelBase.cs.

Property Documentation

◆ CanAddNew

virtual bool Csla.Xaml.ViewModelBase< T >.CanAddNew
getprotected set

Gets a value indicating whether the Model can currently be added.

Definition at line 319 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ CanCancel

virtual bool Csla.Xaml.ViewModelBase< T >.CanCancel
getprotected set

Gets a value indicating whether the Model can currently be canceled.

Definition at line 207 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ CanCreate

virtual bool Csla.Xaml.ViewModelBase< T >.CanCreate
getprotected set

Gets a value indicating whether an instance of the Model can currently be created.

Definition at line 230 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ CanCreateObject

virtual bool Csla.Xaml.ViewModelBase< T >.CanCreateObject
getprotected set

Gets a value indicating whether the current user is authorized to create a Model.

Definition at line 415 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ CanDelete

virtual bool Csla.Xaml.ViewModelBase< T >.CanDelete
getprotected set

Gets a value indicating whether the Model can currently be deleted.

Definition at line 252 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ CanDeleteObject

virtual bool Csla.Xaml.ViewModelBase< T >.CanDeleteObject
getprotected set

Gets a value indicating whether the current user is authorized to delete a Model.

Definition at line 486 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ CanEditObject

virtual bool Csla.Xaml.ViewModelBase< T >.CanEditObject
getprotected set

Gets a value indicating whether the current user is authorized to save (insert or update a Model.

Definition at line 462 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ CanFetch

virtual bool Csla.Xaml.ViewModelBase< T >.CanFetch
getprotected set

Gets a value indicating whether an instance of the Model can currently be retrieved.

Definition at line 275 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ CanGetObject

virtual bool Csla.Xaml.ViewModelBase< T >.CanGetObject
getprotected set

Gets a value indicating whether the current user is authorized to retrieve a Model.

Definition at line 438 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ CanRemove

virtual bool Csla.Xaml.ViewModelBase< T >.CanRemove
getprotected set

Gets a value indicating whether the Model can currently be removed.

Definition at line 297 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ CanSave

virtual bool Csla.Xaml.ViewModelBase< T >.CanSave
getprotected set

Gets a value indicating whether the Model can currently be saved.

Definition at line 185 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ IsBusy

bool Csla.Xaml.ViewModelBase< T >.IsBusy
getprotected set

Gets a value indicating whether this object is executing an asynchronous process.

Definition at line 121 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ IsDirty

virtual bool Csla.Xaml.ViewModelBase< T >.IsDirty
getprotected set

Gets a value indicating whether the Model has been changed.

Definition at line 141 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ IsValid

virtual bool Csla.Xaml.ViewModelBase< T >.IsValid
getprotected set

Gets a value indicating whether the Model is currently valid (has no broken rules).

Definition at line 163 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ ManageObjectLifetime

bool Csla.Xaml.ViewModelBase< T >.ManageObjectLifetime
getset

Gets or sets a value indicating whether the ViewManageObjectLifetime should automatically managed the lifetime of the ManageObjectLifetime.

Definition at line 104 of file Csla.Xaml.Shared/ViewModelBase.cs.

◆ Model

T Csla.Xaml.ViewModelBase< T >.Model
getset

Gets or sets the Model object.

Definition at line 77 of file Csla.Xaml.Shared/ViewModelBase.cs.

Event Documentation

◆ PropertyChanged

PropertyChangedEventHandler Csla.Xaml.ViewModelBase< T >.PropertyChanged

Event raised when a property changes.

Definition at line 781 of file Csla.Xaml.Shared/ViewModelBase.cs.