允许微调器按时间间隔递增/递减TimePicker WPF

时间:2019-03-21 23:53:33

标签: c# wpf timepicker xceed-plus-edition

因此我在XAML视图文件中声明了一个ifstream

TimePicker

哪个绑定到了我的视图模型类中的<xctk:TimePicker Grid.Column="5" Value="{Binding TimeFrame}" TimeInterval="00:30:0" Format="Custom" FormatString="HH:mm" Margin="3 3 3 0" MinWidth="100"/> 方法:

TimeFrame

目前,将private DateTime _timeFrame; public DateTime TimeFrame { get { return _timeFrame; } set { if (value != _timeFrame) { _timeFrame = value; OnPropertyChanged("TimeFrame"); } } } 设置为TimeInterval仅在下拉列表中显示那些间隔。

有没有办法使上下旋转器也仅增加/减少30分钟?是否可以用00:30:0注册按钮按下?

1 个答案:

答案 0 :(得分:3)

您应该能够通过对TimePicker进行子类化并在每分钟的增加或减少时将Step属性设置为30来实现:

public class CustomTimePicker : Xceed.Wpf.Toolkit.TimePicker
{
    protected override void OnIncrement()
    {
        SetStep();
        base.OnIncrement();
    }

    protected override void OnDecrement()
    {
        SetStep();
        base.OnDecrement();
    }

    private void SetStep()
    {
        Step = CurrentDateTimePart == Xceed.Wpf.Toolkit.DateTimePart.Minute ? 30 : 1;
    }
}

用法:

<local:CustomTimePicker Grid.Column="5" Value="{Binding TimeFrame}" 
                        TimeInterval="00:30:0" Format="Custom"
                        FormatString="HH:mm" 
                        Margin="3 3 3 0" MinWidth="100" />