The aim of this is to allow you to provide custom RaisePropertyChanged functionality.
At this first release, the framework doesn't provide any standard Interceptors - but we might write an initial one at some point soon.
An example Interception
The core of interception is the IMvxInpcInterceptor interface.
public interface IMvxInpcInterceptor
MvxInpcInterceptionResult Intercept(IMvxNotifyPropertyChanged sender, PropertyChangedEventArgs args);
You might use this, for example, to provide things like automated additional notifications for certain types - e.g. you might use it to send dependent change notifications.
For example, suppose you have a Person ViewModel with properties:
This new functionality would allow you to provide an interceptor which would automatically send a FullName change notification whenever FirstName or LastName change - ie.e you could implement this interceptor as:
public class MyInterceptor : IMvxInpcInterceptor
public MvxInpcInterceptionResult Intercept(
if (sender.GetType () == typeof(Person))
if (args.PropertyName == "FirstName" ||
args.PropertyName == "LastName")
With this done you could then register your implementation with IoC during Setup.InitializeInpcInterception - e.g.
protected override void InitializeInpcInterception()
For release software, I wouldn't normally expect you to use this particular interceptor implementation, but I hope this illustrates how you might be able to use this mechanism.
For some inspiration about the sort of thing that some people are doing in a similar area, take a look at the excellent: https://github.com/zleao/MvvmCross-PropertyChangedEventPropagation