我是否总是要编写转换器来进行日期格式化?

时间:2010-02-02 11:25:28

标签: wpf data-binding xaml format converter

我经常在我的wpf项目中使用文本框,这些文本框绑定到datetime-propertys。我想将日期格式化为德语格式dd.MM.yyyy。 目前我使用自编写的转换器,我可以提供所需的日期格式。

例如:

<TextBox Name="Date" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type prj:MyBar}}, Path=Date, Converter={StaticResource dateConverter}, ConverterParameter=dd.MM.yyyy}" />

转换器唯一能做的就是调用DateTime的ToString(string formatString)方法。

是否有一种“更智能”的方式来格式化带有数据绑定的日期。最好的是如果不需要编写C#代码。也许microsoft-libs中有任何现有的类可以进行数据绑定的日期转换,但我还没有找到它。

如果有任何建议会很好,

问候, 马丁

1 个答案:

答案 0 :(得分:9)

.NET 3.5 SP1具有StringFormatter。

<TextBox Name="Date" Text="{Binding Date, StringFormat='{}{0:MM/dd/yyyy}'}"/>

结果: 02/02/2010

<TextBox Name="Date" Text="{Binding Date, StringFormat='{}{0:D}'}"/>

结果:2010年2月2日,星期二

但结果也可能因系统默认的DateTime格式而异。