private void DrawHeader()
        {
            DGDynamicFrame frame = new DGDynamicFrame(this.dataGrid.GetControlValues(true), dataGrid.DataLayout, true)
            {
                BackgroundColor = Color.Transparent,
                Margin          = new Thickness(5, 5, 0, 0),
                Padding         = 0
            };

            Container.Children.Add(frame, 0, 0);

            if (dataGrid.DisableAdd)
            {
                Container.Children.Remove(AddRowButton);
                AddColumnDefinition.Width = 0;
            }
        }
        private View GetRow(MobileTableRow row, string name = null)
        {
            string guid = name ?? Guid.NewGuid().ToString("N");

            StackLayout stack = new StackLayout
            {
                ClassId     = guid,
                Orientation = Xamarin.Forms.StackOrientation.Horizontal,
                Padding     = new Thickness(5, 5, 0, 5)
            };

            stack.BackgroundColor = dataGrid.RowHelper.GetBackGroundColor(row);
            dataGrid.RowHelper.SetFontFromExprEvalResult();

            DGDynamicFrame dynamicFrame = new DGDynamicFrame(row, dataGrid.DataLayout)
            {
                ClassId            = guid,
                BackgroundColor    = Color.Transparent,
                Padding            = 0,
                GestureRecognizers = { this.tapRecognizer },
                HorizontalOptions  = LayoutOptions.FillAndExpand
            };

            stack.Children.Add(dynamicFrame);

            if (!dataGrid.DisableDelete)
            {
                Button rowOptions = new Button
                {
                    ClassId = guid,
                    Style   = (Style)HelperFunctions.GetResourceValue("DGEditRowButton")
                };
                rowOptions.Clicked += RowDelete_Clicked;
                stack.Children.Add(rowOptions);
            }
            if (name == null)
            {
                dataDictionary[guid] = row;
            }

            return(stack);
        }