Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 我是否总是必须为日期格式编写转换器?_Wpf_Data Binding_Xaml_Format_Converter - Fatal编程技术网

Wpf 我是否总是必须为日期格式编写转换器?

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

我经常在我的wpf项目中使用绑定到datetime属性的文本框。我想将日期格式化为德语格式
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,当它可用时,你将被设置为=)