/// <summary> /// Handles changes to the Event property. /// </summary> private static void OnEventChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { CommandBehaviorBinding binding = FetchOrCreateBinding(d); //check if the Event is set. If yes we need to rebind the Command to the new event and unregister the old one if (binding.Event != null && binding.Owner != null) { binding.Dispose(); } //bind the new event to the command if (e.NewValue != null) { binding.BindEvent(d, e.NewValue.ToString()); } }