Xamarin 在滑块上设置时间限制,仅允许用户在30分钟内进行编辑

Xamarin 在滑块上设置时间限制,仅允许用户在30分钟内进行编辑,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我正在尝试为我的滑块添加一个时间限制,它只允许用户在30分钟内更新他们的分数,他们可以在图表中显示的任意次数内添加分数,他们可以查看以前输入的所有分数,但我想设置它,以便他们只能在输入分数后30分钟内编辑分数。他们有什么方法可以让我这样做吗?如果滑块超过30,那么可能会隐藏滑块 async void SubmitFeedback_Clicked(object sender, EventArgs e) { CurrentSymptomFeedback.DateTi

我正在尝试为我的滑块添加一个时间限制,它只允许用户在30分钟内更新他们的分数,他们可以在图表中显示的任意次数内添加分数,他们可以查看以前输入的所有分数,但我想设置它,以便他们只能在输入分数后30分钟内编辑分数。他们有什么方法可以让我这样做吗?如果滑块超过30,那么可能会隐藏滑块

    async void SubmitFeedback_Clicked(object sender, EventArgs e)
    {

        CurrentSymptomFeedback.DateTime = DateTime.Now.ToString("dd/MM/yyyy HH:mm");
        CurrentSymptomFeedback.Datetimelimit = DateTime.Now.AddMinutes(30).ToString();
        ExtendedGrialButton btn = sender as ExtendedGrialButton;
        string UserSymptomID = btn.IDValue;

        if (btn.IDValue != IDofSymptomforAdjusting)
        {
            await DisplayAlert("Add feedback", "Please add feedback for the symptom selected", "OK");
        }

        else if (rangeSlider == null)
        {
            await DisplayAlert("Add feedback", "Please add feedback for a symptom", "OK");
        }

        else

        {
            await AddSymptomFeedback(FeedbackID, rangeSlider.Value.ToString(), UserSymptomID);


            await GetSymptomFeedback(CurrentSymptomFeedback.Usersymptomid);

        }

    }

你可以用定时器,有两种方法

使用处理程序:

使用计时器:


当他们添加分数时设置时间戳,如果他们试图编辑,则根据时间戳检查当前时间,如果时间戳大于30,则显示error@LeoZhu是的,成功了,谢谢
new Handler().PostDelayed(
       () => { 
               //do something
               slider.Visibility = ViewStates.Gone; }, 1800);
// create a timer object
Timer _dispatcherTimer;

//limit time
int sec = 1800;

//Instantiate the timer and delegate the event
TimerCallback timerDelegate = new TimerCallback(Tick);
_dispatcherTimer = new System.Threading.Timer(timerDelegate,null,0,1000);

private void Tick(object state)
 {
    this.RunOnUiThread(() =>
    {
      //do something
        if (sec > 0)
        {
            sec--;
        }
        else
        {
            _dispatcherTimer.Dispose();
            slider.Visibility = ViewStates.Gone;

        }
    });
 }