我有关于时间格式字符串的问题,如果我输入内容,那总是显示(。),例如(输入:7并输入),它将像(7.00:00:00)和错误。
以下是我的代码:
<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
任何帮助都将不胜感激。
感谢。
答案 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}"