wrapper.PropertyChanged += this.OnPropertyChanged(args); will not work. This is because you need a handler, not a method. A quick and dirty solution would be something like this:
wrapper.PropertyChanged += (sender, e) => this.OnPropertyChanged(new AdvancedPropertyChangedEventArgs(domainManager, "IsTimeDomain"));
Another option is to really pass on what has changed:
wrapper.PropertyChanged += OnChangeNotificationWrapperPropertyChanged;
private void OnChangeNotificationWrapperPropertyChanged(object sender, PropertyChangedEventArgs e)
var finalEventArgs = new AdvancedPropertyChangedEventArgs(domainManager, e.PropertyName);
This is a good approach. In the ModelBase of Catel, we use this approach to check for IsDirty. Note that this will always be slower than your superfast POCO objects (which have no events and no subscriptions), but that would only be noticeable if you are instantiating
thousands of objects in a short time.