private void Output(Tuple <Enums.DiagramMode, Enums.DiagramMode> transition) { if ((PreviousStateShouldMatch == Enums.DiagramMode.Any || StateTransition.CurrentStateMatches(PreviousStateShouldMatch)) && (CurrentStateShouldMatch == Enums.DiagramMode.Any || StateTransition.CurrentStateMatches(CurrentStateShouldMatch))) { stateChanged?.Execute(); if (currentStateOutput != null) { currentStateOutput.Data = StateTransition.CurrentState; } if (currentStateAsStringOutput != null) { currentStateAsStringOutput.Data = Enum.GetName(typeof(Enums.DiagramMode), StateTransition.CurrentState); } if (transitionOutput != null) { transitionOutput.Data = transition; } } }