我有一个WPF DatePicker对象。
<DatePicker Name="dtp_FilterByDate" />
和
<Application.Resources>
<Style TargetType="{x:Type DatePickerTextBox}">
<Setter Property="Text" Value="Filter by date..." />
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox x:Name="PART_TextBox"
Text="{Binding Path=SelectedDate, StringFormat = {}{0:yyyy-MM-dd}, FallbackValue='1900-01-01', TargetNullValue='Enter a date...',
RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
当我手动在框中输入日期时,它会自动更正它(我知道它使用Date.Parse,然后按照我上面的指定格式化它),但它忽略了我的电脑的事实。文化是en-GB。
例如,如果我输入
07/10/1988
它自动更正
1988-07-10
即将月份设置为7,将日期设置为10 - 这不是我的PC&#34; en-GB&#34;文化 - 期望1988-10-07指定yyyy-MM-dd格式。
如果我输入
23/05/2007
DatePicker显示错误,而不是正确解析。
有没有办法手动设置datepicker(或者通常是应用程序中的所有Date.Parse调用)的文化,以匹配我的PC甚至在所有情况下指定en-GB?< / p>
编辑 - 更多信息
DirectCast(dtp_FilterByDate.Template.FindName("PART_TextBox", dtp_FilterByDate), TextBox)
告诉我语言是&#34; en-US&#34; - 但我不知道为什么会这样。
答案 0 :(得分:0)
好的,我意识到我可以更新我的风格来做到这一点。
执行以下操作:
<TextBox x:Name="PART_TextBox" Text="{...}" Language="en-GB"/>