我使用 TimePicker 并显示默认值“12:00 AM”,我想将该字段设置为空白。
<TimePicker x:Name="timepicker" />
最佳答案
您必须创建自己的 TimePicker
类,该类将允许 XAML 上的 NullableTime
。
类应如下所示:
public class MyTimePicker : TimePicker
{
private string _format = null;
public static readonly BindableProperty NullableDateProperty =
BindableProperty.Create<MyTimePicker, TimeSpan?>(p => p.NullableTime, null);
public TimeSpan? NullableTime
{
get { return (TimeSpan?)GetValue(NullableDateProperty); }
set { SetValue(NullableDateProperty, value); UpdateTime(); }
}
private void UpdateTime()
{
if (NullableTime.HasValue) { if (null != _format) Format = _format; Time = NullableTime.Value; }
else { _format = Format; Format = "pick ..."; }
}
protected override void OnBindingContextChanged()
{
base.OnBindingContextChanged();
UpdateTime();
}
protected override void OnPropertyChanged(string propertyName = null)
{
base.OnPropertyChanged(propertyName);
if (propertyName == "Time") NullableTime = Time;
}
}
然后在 XAML 上,您应该创建控件并按如下方式使用它:
<local:MyTimePicker NullableTime="{x:Null}" />
如果您使用此示例,您将看到默认值应该选择...
关于xamarin - 如何给TimePicker设置空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54677584/