/// <summary>
        /// Invoke this method to signal that a reload has completed, this will update the UI accordingly.
        /// </summary>
        public void ReloadComplete()
        {
            if (RefreshView != null)
            {
                RefreshView.LastUpdate = DateTime.Now;
            }
            if (!Reloading)
            {
                return;
            }

            Reloading = false;
            if (RefreshView == null)
            {
                return;
            }

            RefreshView.SetActivity(false);
            RefreshView.Flip(false);

            UIView.BeginAnimations("doneReloading");
            UIView.SetAnimationDuration(0.3f);
            TableView.ContentInset = new UIEdgeInsets(0, 0, 0, 0);

            RefreshView.SetStatus(RefreshStatus.PullToReload);

            UIView.CommitAnimations();
        }
        public void TriggerRefresh(bool showStatus)
        {
            if (PullToRefreshCommand == null)
            {
                return;
            }

            if (Reloading)
            {
                return;
            }

            Reloading = true;

            if (Reloading && showStatus && RefreshView != null)
            {
                UIView.BeginAnimations("reloadingData");
                UIView.SetAnimationDuration(0.2);
                TableView.ContentInset = new UIEdgeInsets(60, 0, 0, 0);
                UIView.CommitAnimations();
            }

            if (RefreshView != null)
            {
                RefreshView.SetActivity(true);
            }

            Thread.Sleep(250);

            ThreadStart threadStart   = RefreshThread;
            var         refreshThread = new Thread(threadStart);

            refreshThread.Start();
        }