示例#1
0
        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();
        }
示例#2
0
 private bool CheckTypeConstraint(FrameworkElement element)
 {
     //AttachedObjectTypeConstraint.GetTypeInfo().IsAssignableFrom(element.GetType().GetTypeInfo())
     return(AttachedObjectTypeConstraint.IsInstanceOfType(element));
 }