/// <summary>
        /// Execute Dependence Rules.
        /// </summary>
        public virtual void ExecuteDependenceRules(ArgumentEventArgs argumentEventArgs)
        {
            if (!mEnabledChangeArgument)
            {
                return;
            }

            UpdateContext();

            Context.SelectedInputField = argumentEventArgs.Name;

            // Execute Dependency Rules
            try
            {
                // if the change is from value.
                ValueChangedEventArgs lChangeValueEventArgs = argumentEventArgs as ValueChangedEventArgs;
                if (lChangeValueEventArgs != null)
                {
                    PendingChanges = true;
                    Logic.ExecuteDependencyRules(
                        Context,
                        lChangeValueEventArgs.OldValue,
                        DependencyRulesEventLogic.SetValue,
                        argumentEventArgs.Agent);
                }

                // if the change is from enable.
                EnabledChangedEventArgs lChangeEnableEventArgs = argumentEventArgs as EnabledChangedEventArgs;
                if (lChangeEnableEventArgs != null)
                {
                    Logic.ExecuteDependencyRules(
                        Context,
                        lChangeEnableEventArgs.Enabled,
                        DependencyRulesEventLogic.SetActive,
                        argumentEventArgs.Agent);
                }
            }
            catch (Exception logicException)
            {
                ScenarioManager.LaunchErrorScenario(logicException);
            }

            // Delete argument selection
            Context.SelectedInputField = string.Empty;

            // Set context
            ConfigureByContext(Context);
        }
        /// <summary>
        /// Execute Dependence Rules.
        /// </summary>
        public virtual void ExecuteDependenceRules(ArgumentEventArgs argumentEventArgs)
        {
            if (!mEnabledChangeArgument)
            {
                return;
            }

            UpdateContext();

            Context.SelectedInputField = argumentEventArgs.Name;

            // Execute Dependency Rules
            try
            {
                // if the change is from value.
                ValueChangedEventArgs lChangeValueEventArgs = argumentEventArgs as ValueChangedEventArgs;
                if (lChangeValueEventArgs != null)
                {
                    PendingChanges = true;
                    Logic.ExecuteDependencyRules(
                        Context,
                        lChangeValueEventArgs.OldValue,
                        DependencyRulesEventLogic.SetValue,
                        argumentEventArgs.Agent);
                }

                // if the change is from enable.
                EnabledChangedEventArgs lChangeEnableEventArgs = argumentEventArgs as EnabledChangedEventArgs;
                if (lChangeEnableEventArgs != null)
                {
                    Logic.ExecuteDependencyRules(
                            Context,
                            lChangeEnableEventArgs.Enabled,
                            DependencyRulesEventLogic.SetActive,
                            argumentEventArgs.Agent);
                }
            }
            catch (Exception logicException)
            {
                ScenarioManager.LaunchErrorScenario(logicException);
            }

            // Delete argument selection
            Context.SelectedInputField  = string.Empty;

            // Set context
            ConfigureByContext(Context);
        }