public static TriggerBaseNode CreateTrigger(TriggerSourceInformation triggerSource, SceneViewModel viewModel) { RoutedEventInformation eventInformation = triggerSource as RoutedEventInformation; PropertyInformation propertyInformation = triggerSource as PropertyInformation; if ((TriggerSourceInformation)eventInformation != (TriggerSourceInformation)null) { EventTriggerNode eventTriggerNode = EventTriggerNode.Factory.Instantiate(viewModel); eventTriggerNode.RoutedEvent = eventInformation.RoutedEvent; return((TriggerBaseNode)eventTriggerNode); } if (!((TriggerSourceInformation)propertyInformation != (TriggerSourceInformation)null)) { return((TriggerBaseNode)null); } TriggerNode triggerNode = (TriggerNode)null; DependencyProperty dependencyProperty = propertyInformation.DependencyProperty; if (dependencyProperty != null) { triggerNode = TriggerNode.Factory.Instantiate(viewModel); ITriggerConditionNode triggerConditionNode = (ITriggerConditionNode)triggerNode; triggerConditionNode.PropertyKey = dependencyProperty; triggerConditionNode.Value = dependencyProperty.DefaultMetadata.DefaultValue; } return((TriggerBaseNode)triggerNode); }
public ConditionModel AddCondition(ITriggerConditionNode condition) { ConditionModel conditionModel = new ConditionModel(condition, this); conditionModel.Initialize(); conditionModel.PropertyChanged += new PropertyChangedEventHandler(this.Condition_PropertyChanged); this.conditions.Add(conditionModel); this.AsyncSortConditions(); return(conditionModel); }
public ConditionModel(ITriggerConditionNode condition, PropertyTriggerModel propertyTrigger) { this.condition = condition; this.propertyTrigger = propertyTrigger; this.deleteCommand = new DelegateCommand(new DelegateCommand.SimpleEventHandler(this.Delete)); if (!(this.condition is TriggerNode)) { return; } this.deleteCommand.IsEnabled = false; }
public void RemoveCondition(ITriggerConditionNode condition) { foreach (ConditionModel conditionModel in (Collection <ConditionModel>) this.conditions) { if (conditionModel.Condition == condition) { conditionModel.PropertyChanged -= new PropertyChangedEventHandler(this.Condition_PropertyChanged); this.conditions.Remove(conditionModel); break; } } }