public override void Attach(FrameworkElement element) { if (element == AttachedObject) { return; } if (null != AttachedObject) { throw new InvalidOperationException("Cannot Host TriggerAction Multiple Times"); } // if (null != element && !AttachedObjectTypeConstraint.GetTypeInfo().IsAssignableFrom(element.GetType().GetTypeInfo())) if (null != element && (null == AttachedObjectTypeConstraint || false == AttachedObjectTypeConstraint.IsInstanceOfType(element))) { throw new InvalidOperationException("Type Constraint Violated"); } AttachedObject = element; OnAssociatedObjectChanged(); base.Attach(element); OnAttached(); }
public override void Attach(FrameworkElement element) { if (element == AttachedObject) { return; } if (null != AttachedObject) { throw new InvalidOperationException("Cannot host behavior multiple times."); } if (null != element && !AttachedObjectTypeConstraint.GetTypeInfo().IsAssignableFrom(element.GetType().GetTypeInfo())) { throw new InvalidOperationException("Type constraint violated."); } AttachedObject = element; OnAssociatedObjectChanged(); //Attach handles the DataContext base.Attach(element); OnAttached(); }
private bool CheckTypeConstraint(FrameworkElement element) { //AttachedObjectTypeConstraint.GetTypeInfo().IsAssignableFrom(element.GetType().GetTypeInfo()) return(AttachedObjectTypeConstraint.IsInstanceOfType(element)); }