public ModelPropertyChangedEventArgs(string Name, PropertyChangedChainEntry Prop, ModelPropertyChangedEventKind kind) : this(Name, Prop) { _changeKind = kind; }
//protected void OnPropertyChanged([CallerMemberName] string propertyName = null) protected void OnPropertyChanged(string propertyName = null, object value = null, ModelPropertyChangedEventKind kind = ModelPropertyChangedEventKind.SetValue) { // handle changed _changed = true; // false positive it will do true even if object was empty #if DEBUG_TRACE_LOG_ON _logger.Debug(string.Format("Property changed {0} from {1}", propertyName, GetType().Name)); #endif _wes_PropertyChanged?.Raise(this, new PropertyChangedEventArgs(propertyName)); // model changes _wes_ModelPropertyChanged?.Raise( this, new ModelPropertyChangedEventArgs( propertyName == string.Empty ? "*" : propertyName, new ModelPropertyChangedEventArgs.PropertyChangedChainEntry() { Container = this, PropertyName = propertyName == string.Empty ? "*" : propertyName, Value = value }, kind ) ); }