Wpf 我是否总是必须为日期格式编写转换器?
我经常在我的wpf项目中使用绑定到datetime属性的文本框。我想将日期格式化为德语格式Wpf 我是否总是必须为日期格式编写转换器?,wpf,data-binding,xaml,format,converter,Wpf,Data Binding,Xaml,Format,Converter,我经常在我的wpf项目中使用绑定到datetime属性的文本框。我想将日期格式化为德语格式dd.MM.yyyy。 目前,我使用一个自编转换器来实现这一点,我可以提供所需的日期格式 例如: <TextBox Name="Date" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type prj:MyBar}}, Path=Date, Converter={StaticResou
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代码。也许在MicrosoftLibs中有任何现有的类可以为数据绑定进行这样的日期转换,但我还没有找到它
如果有什么建议就好了
您好,
Martin.NET3.5SP1具有StringFormatter
<TextBox Name="Date" Text="{Binding Date, StringFormat='{}{0:MM/dd/yyyy}'}"/>
结果:
2010年2月2日
<TextBox Name="Date" Text="{Binding Date, StringFormat='{}{0:D}'}"/>
结果:2010年2月2日,星期二
但结果也可能因系统默认日期时间格式而异。标准日期/时间格式已在所有.Net版本中使用,请参阅(版本1.1)。在.Net 3.0中是否存在这种可能性,因为我尚未将项目迁移到3.5。只需制作一个字符串格式转换器,并将格式字符串作为转换器参数传递。然后,您只需要为所有这些文件制作一个转换器,并且当/如果您确实迁移到3.5sp1时,很容易进行更新。如果您仍然使用.Net 3.0,那么唯一的方法就是编写自定义转换器。考虑移动到.NET 4,当它可用时,你将被设置为=)