0

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

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

4

2 回答 2

0

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

于 2012-06-18T19:37:29.173 回答
0

由于询问了有关仅 XAML 的字符串格式的问题,因此您将StringFormat在 XAML 中指定以下内容:

简单的:

StringFormat=d

速记:(注意转义大括号)

StringFormat='\{0:d\}'

自定义:(添加文本)

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

TextBox使用 a的整体StringFormat

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

语法与 String.Format 相同;然而:

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

话虽如此,您要做的不仅仅是格式化日期,而是尝试将字符串解析为 a DateTime,然后将其格式化DateTime为字符串。在这两个步骤中,只有后者可以在 XAML 中完成。这是悲伤的时刻,但毕竟,XAML 是用于标记,而不是计算。

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

于 2012-06-18T20:18:55.507 回答