【发布时间】:2017-08-15 13:11:27
【问题描述】:
我有一个可以在 TextBox 中编辑的 TimeSpan 属性。 TextBox 使用转换器将字符串转换为 TimeSpan 并再次转换回来。问题是用户必须输入格式化字符串,如 hh:mm:ss 等。我希望用户只能输入代表总秒数的整数。
实现这一目标的最佳方法是什么?
【问题讨论】:
标签: c# wpf binding textbox timespan
我有一个可以在 TextBox 中编辑的 TimeSpan 属性。 TextBox 使用转换器将字符串转换为 TimeSpan 并再次转换回来。问题是用户必须输入格式化字符串,如 hh:mm:ss 等。我希望用户只能输入代表总秒数的整数。
实现这一目标的最佳方法是什么?
【问题讨论】:
标签: c# wpf binding textbox timespan
它就在我面前......只是有一个错字。转换器必须简单地这样做:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((TimeSpan)value).TotalSeconds.ToString(CultureInfo.InvariantCulture);
}
/// <see cref="IValueConverter.ConvertBack"/>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return TimeSpan.FromSeconds(int.Parse((string) value, NumberStyles.None, CultureInfo.InvariantCulture));
}
【讨论】: