【问题标题】:Time Need to validate for timepicker in xamarin forms时间需要在 xamarin 表单中验证时间选择器
【发布时间】:2021-07-16 11:15:35
【问题描述】:

我需要验证从时间选择器中选择的时间。因此,如果所选时间无效,那么我需要显示一条 toast 消息。

如果从时间选择器中选择时间会触发哪个事件?

如果根据我的条件选择的时间无效,我不想绑定时间。

XAML 代码:

<controls:DatePickerCustom FontSize="14" HeightRequest="35" Date="{Binding CustomDate,Mode=TwoWay}" MaximumDate="{Binding MaximumDate}" FontFamily="Segoe UI" Format="D" IsEnabled="{Binding IsDatePickerEnable}">
                                    <DatePicker.Triggers>
                                        <DataTrigger TargetType="DatePicker" Binding="{Binding IsCustomSelected}" Value="true">
                                            <Setter Property="TextColor" Value="{DynamicResource HeadingTextColor}" />
                                            <Setter Property="TextColor" Value="{DynamicResource HeadingTextColor}" />
                                        </DataTrigger>
                                    </DatePicker.Triggers>
                                </controls:DatePickerCustom>

【问题讨论】:

    标签: xamarin.forms event-handling timepicker


    【解决方案1】:

    在属性CustomDate 的“设置器”中处理此问题。

    在 setter 中,新值是 value。如果 value 无效,则显示 toast 消息。从 setter 返回,不更改保存值的内部字段,也不调用 OnPropertyChanged

    如果您需要更多信息,请出示声明属性CustomDate的代码。

    如果该属性当前是“自动属性”,请将其转换为“完整属性” - 这将有一个“支持字段”,并为您提供一个进行测试的地方,并拒绝更改。

    【讨论】:

      【解决方案2】:

      你可以监听TimePickerPropertyChanged事件,然后匹配Time属性。

      例如:

      <TimePicker PropertyChanged="TimePicker_PropertyChanged"></TimePicker>
      
      
      private void TimePicker_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
          {
              TimePicker timePicker = sender as TimePicker;
              if (e.PropertyName.Equals("Time") )
              {
                  var time = timePicker.Time;
                  if (time.Minutes == 10) // your condition
                  {
      
                  }
                  else
                  {
                      DisplayAlert("Warning", "This is a validate time", "Cancel");
                  }
              }
          }
      

      【讨论】:

        猜你喜欢
        • 2013-02-02
        • 2019-01-31
        • 2016-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多