【发布时间】:2015-10-08 04:59:21
【问题描述】:
我的 XAML 代码如下:
<TextBox
Text="{Binding Path=TimeDuration, ConverterParameter='hhmm',
Converter={StaticResource HoursMinutesTimeSpanConverter}}"/>
转换器代码:
[ValueConversion(typeof(TimeSpan), typeof(String))]
public class HoursMinutesTimeSpanConverter : IValueConverter
{
/// <summary>Converts the value into a time only formatted string.</summary>
/// <param name="value"> The value. </param>
/// <param name="targetType"> The target type. </param>
/// <param name="parameter"> The parameter. </param>
/// <param name="culture"> The culture. </param>
/// <returns>Time string value. </returns>
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
return ((TimeSpan)value).ToString(parameter.ToString());
}
/// <summary>Converts the hours minutes string back to
/// the time span value.</summary>
/// <param name="value"> The value. </param>
/// <param name="targetType"> The target type. </param>
/// <param name="parameter"> The parameter. </param>
/// <param name="culture"> The culture. </param>
/// <returns>Time string value. </returns>
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return TimeSpan.ParseExact((string)value, parameter.ToString(),
CultureInfo.CurrentCulture);
}
}
它工作正常。实际上,我需要将此 hh\:mm 作为参数,以便在转换器中正确格式化。
我试过了:
> ConverterParameter='hh{escape character code here}mm' giving codes for the characters
注意:我是这样输入的,因为那是 html 中的代码,它没有反映在我的帖子中,所以为什么。
通过引用:link。
在我的情况下它不起作用。如何解决这个问题。
提前致谢。
【问题讨论】:
-
能把转换器的代码发一下
HoursMinutesTimeSpanConverter吗? -
ContentStringFormat="{}{0}:" -
@RahulTripathi 您能否发布完整的 xaml 行。因为它是一个 ConverterParameter 所以很困惑在哪里给出这个代码。
-
你可以使用 stringFormat 代替转换器。
-
为什么/什么在您的情况下不起作用?