我需要重新格式化包含日期的字符串而不使用后面的代码。该字符串的格式为 YY/MM/DD,但必须为 MM/DD/YYYY。我已经看到在给定 Date 对象的情况下这样做了,但是我受到限制,因为它是一个字符串。
到目前为止,我似乎需要代码来执行此操作,但目前我们的供应商不支持。
您可以使用 Binding 上的 StringFormat 属性来格式化绑定数据。如果 XAML 中有字符串,则可以将其作为静态源绑定到 TextBlock 的 Text 属性,并通过 StringFormat 重新格式化。有关详细信息,请参阅此帖子。
由于询问了有关仅 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
可以只以指定格式导出日期。