Пример #1
0
        public override object SetCustomValue(object target, object value)
        {
            if (ElementName != null)
            {
                target = ((System.Windows.FrameworkElement)target).FindName(ElementName);
            }

            if (target == null)
            {
                return(null);
            }

            var eventInfo = target.GetType().GetEvent(EventName);

            if (eventInfo != null)
            {
                TriggerExtensions.RemoveEvent(target, eventInfo, this);
            }
            return(null);
        }
Пример #2
0
        private void SetCommandParameter()
        {
            object parameterValue = EventSetterInfo.GetValue(EventSetterInfo.CommandParameterProperty);

            if (parameterValue == null)
            {
                System.Windows.Data.Binding binding = System.Windows.Data.BindingOperations.GetBinding(EventSetterInfo, EventSetterInfo.CommandParameterProperty);
                if (binding != null)
                {
                    if (binding.Path == null)
                    {
                        parameterValue = ((System.Windows.FrameworkElement)Target).DataContext;
                    }
                    else
                    {
                        parameterValue = TriggerExtensions.GetValueBinding(binding, ((System.Windows.FrameworkElement)Target));
                    }
                }
            }
            CommandParameter = parameterValue;
        }