protected virtual void OnValueChanged(T newValue, T oldValue, DependencyObject d) { if (d is INamedValueEditor <T> editor) { var valueChangedEventArgs = new EditableValueChangedEventArgs <T>(editor.Value, editor.PropertyName); if (editor.ValueChangedCommand != null && editor.ValueChangedCommand.CanExecute(valueChangedEventArgs)) { editor.ValueChangedCommand.Execute(valueChangedEventArgs); } } }
private static async void OnValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (d is NamedValueEditor <T> editor) { T newValue; T oldValue; if (e.NewValue is T) { newValue = (T)e.NewValue; } else { newValue = default(T); } if (e.OldValue is T) { oldValue = (T)e.OldValue; } else { oldValue = default(T); } editor.OnValueChanged(newValue, oldValue, d); var valueChangedEventArgs = new EditableValueChangedEventArgs <T>(editor.Value, editor.PropertyName); if (editor.ValueChangedCommand != null && editor.ValueChangedCommand.CanExecute(valueChangedEventArgs)) { editor.ValueChangedCommand.Execute(valueChangedEventArgs); } await editor.OnValueChangedAsync(newValue, oldValue, d); } }