using System; using System.Windows; using EventTrigger = System.Windows.Interactivity.EventTrigger; namespace StructureHelper.Infrastructure { public class EventTriggerBase : EventTrigger where T : RoutedEventArgs { readonly Predicate eventTriggerPredicate; public EventTriggerBase(Predicate eventTriggerPredicate) { this.eventTriggerPredicate = eventTriggerPredicate; } protected override void OnEvent(EventArgs eventArgs) { if (eventArgs is T e && eventTriggerPredicate(e)) { base.OnEvent(eventArgs); e.Handled = true; } } } }