private void RemoveUnusedHeaders()
        {
            switch (Headers.Count)
            {
            case 0:
                Column1Button.RemoveFromSuperview();
                Column2Button.RemoveFromSuperview();
                Column3Button.RemoveFromSuperview();
                Column4Button.RemoveFromSuperview();
                break;

            case 1:
                Column1Button.RemoveFromSuperview();
                Column2Button.RemoveFromSuperview();
                Column3Button.RemoveFromSuperview();
                break;

            case 2:
                Column1Button.RemoveFromSuperview();
                Column2Button.RemoveFromSuperview();
                break;

            case 3:
                Column1Button.RemoveFromSuperview();
                break;

            default:
                break;
            }
        }
        private void SetUpHeaders()
        {
            switch (Headers.Count)
            {
            case 0:
                break;

            case 1:
                Column4Button.SetTitle(Headers[0], UIControlState.Normal);
                break;

            case 2:
                Column3Button.SetTitle(Headers[0], UIControlState.Normal);
                Column4Button.SetTitle(Headers[1], UIControlState.Normal);
                break;

            case 3:
                Column2Button.SetTitle(Headers[0], UIControlState.Normal);
                Column3Button.SetTitle(Headers[1], UIControlState.Normal);
                Column4Button.SetTitle(Headers[2], UIControlState.Normal);
                break;

            default:
                Column1Button.SetTitle(Headers[0], UIControlState.Normal);
                Column2Button.SetTitle(Headers[1], UIControlState.Normal);
                Column3Button.SetTitle(Headers[2], UIControlState.Normal);
                Column4Button.SetTitle(Headers[3], UIControlState.Normal);
                break;
            }
        }
        public override void AwakeFromNib()
        {
            base.AwakeFromNib();

            Column1Button.AddGestureRecognizer(new UITapGestureRecognizer(() => OnColumnClick(Headers.Count - 4)));
            Column1Button.AddGestureRecognizer(new UILongPressGestureRecognizer((r) => OnColumnLongPress(Headers.Count - 4, Column1Button, r)));

            Column2Button.AddGestureRecognizer(new UITapGestureRecognizer(() => OnColumnClick(Headers.Count - 3)));
            Column2Button.AddGestureRecognizer(new UILongPressGestureRecognizer((r) => OnColumnLongPress(Headers.Count - 3, Column2Button, r)));

            Column3Button.AddGestureRecognizer(new UITapGestureRecognizer(() => OnColumnClick(Headers.Count - 2)));
            Column3Button.AddGestureRecognizer(new UILongPressGestureRecognizer((r) => OnColumnLongPress(Headers.Count - 2, Column3Button, r)));

            Column4Button.AddGestureRecognizer(new UITapGestureRecognizer(() => OnColumnClick(Headers.Count - 1)));
            Column4Button.AddGestureRecognizer(new UILongPressGestureRecognizer((r) => OnColumnLongPress(Headers.Count - 1, Column4Button, r)));
        }