/// <summary> /// Initializes a new instance of the <see cref="ButtonsPanelBase"/> class. /// </summary> /// <param name="parentMachine">The parent machine.</param> /// <exception cref="System.ArgumentNullException">parentViewMode</exception> public ButtonsPanelBase(StateMachineContext parentMachine) { if (parentMachine == null) { throw new ArgumentNullException("parentViewMode"); } m_ParentViewMode = parentMachine; parentMachine.PropertyChanged += parentViewMode_PropertyChanged; LeftButtonCommand = new SynchronousCommandBase <object> (m_ParentViewMode.StateMachineActionsArray[(int)StateMachineEventIndex.LeftButtonEvent], y => (this.m_EnabledEvents & StateMachineEvents.LeftButtonEvent) != 0); LeftMiddleButtonCommand = new SynchronousCommandBase <object> (m_ParentViewMode.StateMachineActionsArray[(int)StateMachineEventIndex.LeftMiddleButtonEvent], y => (this.m_EnabledEvents & StateMachineEvents.LeftMiddleButtonEvent) != 0); RightMiddleButtonCommand = new SynchronousCommandBase <object> (m_ParentViewMode.StateMachineActionsArray[(int)StateMachineEventIndex.RightMiddleButtonEvent], y => (this.m_EnabledEvents & StateMachineEvents.RightMiddleButtonEvent) != 0); RightButtonCommand = new SynchronousCommandBase <object> (m_ParentViewMode.StateMachineActionsArray[(int)StateMachineEventIndex.RightButtonEvent], y => (this.m_EnabledEvents & StateMachineEvents.RightButtonEvent) != 0); }
/// <summary> /// Enters the state <typeparamref name="StateType"/> after the view is navigated to. /// </summary> /// <param name="value">The value.</param> protected virtual void EnterState(StateMachineContext value) { MyState = value.EnterState <StateType>(this); }