public void MaximiseItem(View pItem)
        {
            if (RestoreList == null)
            {
                RestoreList = new List <ItemState>();

                base.BatchBegin();
                foreach (var child in Children)
                {
                    var restoreitem = new ItemState(child);
                    RestoreList.Add(restoreitem);
                    if (!child.Equals(pItem))
                    {
                        restoreitem.SetVisibility(child, false);
                    }
                }

                Grid.SetRow(pItem, 0);
                Grid.SetColumn(pItem, 0);
                Grid.SetRowSpan(pItem, RowDefinitions.Count);
                Grid.SetColumnSpan(pItem, ColumnDefinitions.Count);
                base.BatchCommit();
                DelayedInvalidateLayout();
            }
        }