xamarin - 如何给TimePicker设置空值?

标签 xamarin xamarin.forms timepicker

我使用 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}" />

如果您使用此示例,您将看到默认值应该选择...

enter image description here

关于xamarin - 如何给TimePicker设置空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54677584/

相关文章:

javascript - 如何创建时间选择器下拉菜单?

c# - MVVMCross:在 android xml 中绑定(bind)嵌套属性

android - Xamarin 形成本地通知

debugging - 断点不会在Visual Studio 2019 Xamarin.Forms项目中受到打击

c# - Xamarin Forms 后门(Android)

android - 如何自定义一个TimePickerDialog?

c# - 何时取消 Hook Xamarin 自定义呈现器中的事件

ios - 是否可以阻止 iOS 应用程序被放置在主屏幕上?

ios - 为什么自动布局预览和实际设备不匹配

Android TimePicker AM/PM 按钮不调用 onTimeChanged