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

问题描述 投票:2回答:1

所以我在我的XAML视图文件中声明了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设置为00:30:0仅显示下拉列表中的那些间隔。

有没有办法让上/下旋转器只增加/减少30分钟?有没有办法用TimePicker注册按钮?

c# wpf timepicker xceed-plus-edition
1个回答
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" />
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.