如何解决时间需要以 xamarin 形式验证时间选择器
我需要从时间选择器中验证选定的时间。因此,如果所选时间无效,那么我需要显示一条吐司消息。
如果从时间选择器中选择时间,将触发哪个事件?
如果根据我的情况选择的时间无效,我不想绑定时间。
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>
解决方法
在属性 CustomDate
的“setter”中处理这个。
在 setter 中,新值是 value
。如果 value
无效,则显示 toast 消息。从 setter 返回,不更改保存值的内部字段,也不调用 OnPropertyChanged
。
如果您需要更多信息,请显示声明属性 CustomDate
的代码。
如果该属性当前是“自动属性”,请将其转换为“完整属性” - 这将有一个“支持字段”,并为您提供一个进行测试的地方,并拒绝更改。
,您可以监听 PropertyChanged
的 TimePicker
事件,然后匹配 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");
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。