格式化字符串后面没有代码

时间:2012-06-18 19:12:27

标签: wpf xaml

我需要重新格式化包含日期的字符串,而不使用后面的代码。字符串的格式为YY / MM / DD,但需要为MM / DD / YYYY。我已经看到这给了一个Date对象,但是我受限制因为它是一个字符串。

到目前为止,似乎我需要代码来执行此操作,但目前我们的供应商不支持。

2 个答案:

答案 0 :(得分:0)

您可以在Binding上使用StringFormat属性来格式化绑定数据。如果在XAML中有String,则可以将其作为静态源绑定到TextBlock的Text属性,并通过StringFormat重新格式化。有关详细信息,请参阅此post

答案 1 :(得分:0)

由于询问了有关仅XAML字符串格式的问题,以下是您在XAML中指定StringFormat的方法:

简单:

StringFormat=d

朗手:(注意转义大括号)

StringFormat='\{0:d\}'

自定义:(添加文字)

StringFormat='The date is \{0:d\}'

使用TextBox整个StringFormat

<TextBox Text="{Binding myProperty, StringFormat='The date is \{0:d\}'}"

语法与String.Format相同;但是:

  • 您只能使用一个参数
  • 你必须用反斜杠
  • 来逃避花括号
  • 如果您想指定的不仅仅是格式字符串,您必须将整个表达式放在单引号中

所有这一切,你要做的不仅仅是格式化日期,而是你试图将字符串解析为DateTime,然后将DateTime格式化为字符串。在这两个步骤中,只有后者可以在XAML中完成。这是悲伤的时期,但毕竟,XAML是用于标记,而不是计算。

从好的方面来说,如果您能够在项目中引用另一个程序集,则可以实现IValueConverter,这样您就可以将输入字符串转换为DateTime,那么XAML中的StringFormat就可以了。或者,您的IValueConverter只能以指定的格式导出日期。