TimePicker只绑定时间

时间:2018-01-19 23:53:30

标签: c# wpf

我已经安装了WPF Toolkit Extender并希望使用TimePicker ...而且只使用TimePicker。我将Value绑定到VM中的String属性。 TimePicker的值始终包含日期。我怎么才能得到时间?我哪里错了? (是的,我确定我使用的是TimePicker而不是DateTimePicker)。

XAML

        <xctk:TimePicker 
                     Margin="106,178,170,256"
                     Format="Custom"
                     FormatString="hh:mm tt"
                     TimeInterval="00:15"
                     Value="{Binding Time, Mode=TwoWay}"
                     />

视图模型

    private String _time;

    public String Time
    {
        get { return _time; }
        set { SetProperty(ref _time, value, () => Time); }
    }

调试时的值

“1/19/2018 12:00:31 AM”

1 个答案:

答案 0 :(得分:2)

Xceed TimePicker的Value属性为Nullable<DateTime>,其中包含整个日期和时间值。

我建议做的是绑定到Nullable<DateTime>DateTime?)的属性,因为这是你实际使用的。如果需要字符串表示形式,则可以根据Time属性获得计算属性。

public string TimeText => String.Format("", Time);

您还必须在附加属性上提升属性更改事件(如有必要)。真的很难说,因为我不确定你需要一个时间的字符串表示,而不是使用实际的DateTime对象。最后一个注意事项是,您可以使用返回TimeOfDay对象的TimeSpan属性来提取DateTime的时间部分。