Callback expectations

A view model that needs to intercept state view changes can implement an interface that declares which are the required callback(s), the supported interfaces are:

  • IExpectViewLoadedCallback;

  • IExpectViewActivatedCallback;

  • IExpectViewShownCallback;

  • IExpectViewClosingCallback;

  • IExpectViewClosedCallback;

All those interfaces are pretty trivial and does not require any further explanation other then the following sample:

class SampleViewModel : IExpectViewLoadedCallback
{
void IExpectViewLoadedCallback.OnViewLoaded()
{
//code to handle the View Loaded event
}
}

The only “special” one is the IExpectViewClosingCallback that allows the ViewModel to ask to the View to stop the closing process:

class ChildViewModel : AbstractViewModel, IExpectViewClosingCallback
{
void IExpectViewClosingCallback.OnViewClosing( CancelEventArgs e )
{
//blocks the view closing process
e.Cancel = true;
}
}

Those interfaces are designed to let the ViewModel intercept the state changes of its own View not of other views, the default way to intercept state changes of other views is to use the MessageBroker.