我正在尝试以下列格式在WPF TextBlock中显示日期:
09:35 Uhr
我的第一次尝试当然不起作用:
<TextBlock Text="{Binding StartTime,StringFormat={}{0:hh:mm Uhr}}"
导致字符串09:35 U9r
,因为日期之后字符串中的h
被解释为小时的占位符。将h
写为h
也不起作用,也不会尝试将其作为{{h}}
转义。
那么,它实际上可以实现我想做的事情吗?或者我是否必须将字符串分解为两个TextBlock
,使用自定义转换器或类似的东西?
答案 0 :(得分:2)
试试这个:
<TextBlock Text="{Binding Path=StartTime, StringFormat={}{0:hh:mm} Uhr}" ... />
答案 1 :(得分:1)
根据http://msdn.microsoft.com/en-us/library/aa719856(v=vs.71).aspx
使用\<TextBlock Text="{Binding StartTime,StringFormat={}{0:hh:mm U\\hr}}"
或者您也可以使用类似
的IValueConverterpublic class MyFormatter : IValueConverter
{
public object Convert(object value, Type tagetType, object parameter, CultureInfo culture)
{
return string.Format("{0:hh:mm}", value)+" Uhr";
}
...
//Just throw NotImplemented for ConvertBack
}