C#时间格式字符串是这样的(7.00:00:00)

时间:2017-12-04 05:18:29

标签: c# telerik string-formatting timespan

我有关于时间格式字符串的问题,如果我输入内容,那总是显示(。),例如(输入:7并输入),它将像(7.00:00:00)和错误。

enter image description here

以下是我的代码:

<telerik:GridViewDataColumn Header="To Hour" DataMemberBinding="{Binding ToHour, Mode=TwoWay, StringFormat=\{0:hh\\:mm\\:ss\}}" TextAlignment="Center" IsSortable="True" Width="*"   />

型号:

private TimeSpan _toHour;
        public TimeSpan ToHour
        {
            get { return _toHour; }
            set
            {
                IsModified = (_toHour != value ? true : IsModified);
                SetProperty(ref _toHour, value);
                ValidateField(nameof(ToHour));
            }
        }

我期待类似的东西,例如:如果我输入7并输入则输出为07:00:00

但实际输出为:7.00:00:00

任何帮助都将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:0)

作为一种解决方法,它可以在模型方面处理(验证等,省略):

private TimeSpan _toHour = TimeSpan.Zero;
public string ToHour
{
    get => _toHour.ToString("hh\\:mm\\:ss");
    set
    {

        _toHour = value.Contains(":") ? TimeSpan.Parse(value) : TimeSpan.ParseExact(value, "%h", CultureInfo.InvariantCulture);
        OnPropertyChanged(nameof(ToHour));
    }
}

从xaml中删除字符串格式:

DataMemberBinding="{Binding ToHour, Mode=TwoWay}"