【问题标题】:WPF DatePicker - autocorrect optionsWPF DatePicker - 自动更正选项
【发布时间】:2014-09-08 11:40:28
【问题描述】:

我有一个 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 然后按照我上面指定的方式对其进行格式化),但它忽略了我的 PC 的文化是 en-GB 的事实。

例如,如果我输入

07/10/1988

它会自动更正为

1988-07-10

即将月份设置为 7 并将日期设置为 10 - 这对于我的 PC 的“en-GB”文化来说不是预期的行为 - 对于指定的 yyyy-MM-dd 格式,它期望 1988-10-07。

如果我进入

23/05/2007

DatePicker 显示错误,而不是正确解析。

有没有办法手动设置日期选择器(或通常为应用程序中的所有 Date.Parse 调用)的区域性,以匹配我的电脑,甚至在所有情况下都指定 en-GB?

编辑 - 更多信息

DirectCast(dtp_FilterByDate.Template.FindName("PART_TextBox", dtp_FilterByDate), TextBox)

显示语言是“en-US” - 但我不知道为什么会这样。

【问题讨论】:

    标签: wpf vb.net datepicker culture date-formatting


    【解决方案1】:

    好的,刚刚意识到我可以更新我的风格来做到这一点。

    执行以下操作:

    <TextBox x:Name="PART_TextBox" Text="{...}" Language="en-GB"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多