123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using System;
- using System.Collections;
- using System.Globalization;
- namespace HandyControl.Interactivity;
- [AttributeUsage(AttributeTargets.Property | AttributeTargets.Class, AllowMultiple = true)]
- public sealed class DefaultTriggerAttribute : Attribute
- {
- private readonly object[] _parameters;
- public DefaultTriggerAttribute(Type targetType, Type triggerType, object parameter) : this(targetType,
- triggerType, new[] { parameter })
- {
- }
- public DefaultTriggerAttribute(Type targetType, Type triggerType, params object[] parameters)
- {
- if (!typeof(TriggerBase).IsAssignableFrom(triggerType))
- throw new ArgumentException(string.Format(CultureInfo.CurrentCulture,
- ExceptionStringTable.DefaultTriggerAttributeInvalidTriggerTypeSpecifiedExceptionMessage,
- new object[] { triggerType.Name }));
- TargetType = targetType;
- TriggerType = triggerType;
- _parameters = parameters;
- }
- public IEnumerable Parameters =>
- _parameters;
- public Type TargetType { get; }
- public Type TriggerType { get; }
- public TriggerBase Instantiate()
- {
- object obj2 = null;
- try
- {
- obj2 = Activator.CreateInstance(TriggerType, _parameters);
- }
- catch
- {
- // ignored
- }
- return (TriggerBase) obj2;
- }
- }
|