public ConditionViewModel(StateMachineCondition model, TransitionEditorViewModel owner, ConditionEditServiceManager serviceManager, IMessageBoxService messageBoxService) { _model = model; _owner = owner ?? throw new ArgumentNullException(nameof(owner)); _serviceManager = serviceManager ?? throw new ArgumentNullException(nameof(serviceManager)); _messageBoxService = messageBoxService ?? throw new ArgumentNullException(nameof(messageBoxService)); Conditions = new ConditionsViewModel(this); if (model.Conditions != null) { foreach (var childCondition in model.Conditions) { Conditions.Add(new ConditionViewModel(childCondition, owner, serviceManager, _messageBoxService)); } } //Get the current editor _editService = _serviceManager[model.ConditionType]; Fix(); AddConditionCommand = new RelayCommand(AddCondition, () => CanAddCondition); DeleteCommand = new RelayCommand(Delete); Conditions.CollectionChanged += ConditionsCollectionChanged; }
public CriteriaTransitionViewModel(TransitionEditorViewModel owner, IMessageBoxService messageBoxService) { _owner = owner ?? throw new ArgumentNullException(nameof(owner)); _messageBoxService = messageBoxService ?? throw new ArgumentNullException(nameof(messageBoxService)); RootCondition = _owner.Transition.Condition?.GetModel().ToViewModel(owner); AddConditionCommand = new RelayCommand(AddCondition, CanAddCondition); AddConditionToolTip = DefaultToolTip; }