/// <summary>
        /// Called when the substate control data has bound.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        protected virtual void OnSubstateControlDataBound([NotNull] object sender, [NotNull] SubstateControlDataBoundEventArgs e)
        {
            Assert.ArgumentNotNull(sender, "sender");
            Assert.ArgumentNotNull(e, "e");

            OrderStateList control = sender as OrderStateList;

            if (control == null)
            {
                return;
            }

            EventHandler <OrderStateListViewSubstateCreatedEventArgs> handler = this.OrderStateListViewSubstateCreated;

            if (handler != null)
            {
                OrderStateListViewSubstateCreatedEventArgs eventArgs = new OrderStateListViewSubstateCreatedEventArgs(control.CurrentState, e.Substate);

                handler(this, eventArgs);

                ((WebControl)e.Control).Enabled = eventArgs.Enabled;
            }
        }
        /// <summary>
        /// Called when the substate control data has bound.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        protected virtual void OnSubstateControlDataBound([NotNull] object sender, [NotNull] SubstateControlDataBoundEventArgs e)
        {
            Assert.ArgumentNotNull(sender, "sender");
              Assert.ArgumentNotNull(e, "e");

              OrderStateList control = sender as OrderStateList;

              if (control == null)
              {
            return;
              }

              EventHandler<OrderStateListViewSubstateCreatedEventArgs> handler = this.OrderStateListViewSubstateCreated;
              if (handler != null)
              {
            OrderStateListViewSubstateCreatedEventArgs eventArgs = new OrderStateListViewSubstateCreatedEventArgs(control.CurrentState, e.Substate);

            handler(this, eventArgs);

            ((WebControl)e.Control).Enabled = eventArgs.Enabled;
              }
        }