/// <summary>
 /// Configures a Layout that already contains controls for the optional
 /// buttons to match the state of the buttons.  Both in visibility
 /// and in order of the buttons
 /// </summary>
 /// <param name="layout"></param>
 public void ApplyTo(FlexLayout layout)
 {
     foreach (var button in this.Buttons)
     {
         var child = layout.FindByName(button.XamlName) as View;
         if (child != null)
         {
             child.IsVisible = button.IsChecked;
             if (button.IsChecked)
             {
                 layout.Children.Remove(child);
                 layout.Children.Add(child);
             }
         }
     }
 }