/// <summary>
 /// Activates the initial button in the group.
 /// </summary>
 /// <param name="index">The index of the button to activate.</param>
 public virtual void ActivateButtonAtIndex(int index)
 {
     for (int buttonIndex = 0; buttonIndex < ButtonList.NonSubscribableElements.Count; buttonIndex++)
     {
         if (buttonIndex == index)
         {
             SpatialButtonFacade spatialButton = GetSpatialButtonAtIndex(buttonIndex);
             if (spatialButton != null)
             {
                 spatialButton.RunWhenActiveAndEnabled(() => spatialButton.Configuration.Select());
             }
         }
     }
 }
        protected virtual void OnAfterActiveButtonIndexChange()
        {
            if (ignoreActiveButtonIndexChanges)
            {
                return;
            }

            if (ActiveButtonIndex == -1)
            {
                SpatialButtonFacade spatialButton = GetSpatialButtonAtIndex(cachedIndex);
                if (spatialButton != null)
                {
                    spatialButton.RunWhenActiveAndEnabled(() => spatialButton.Deselect());
                }
            }
            else
            {
                ActivateButtonAtIndex(ActiveButtonIndex);
            }
        }