2014-09-08 4 views
1

У меня есть объект WPP DatePicker.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 

это autocorrects его

1988-07-10 

т.е. установка месяца до 7 и на следующий день до 10 - что не ожидаемое поведение для моего ПК «ан -GB ", которая ожидает от 1988-10-07 для указанного формата yyyy-MM-dd.

Если я вхожу

23/05/2007 

DatePicker показывает ошибку, а не разбор правильно.

Есть ли способ установить культуру для datepicker (или, как правило, для всех вызовов Date.Parse в приложении) вручную, чтобы соответствовать моим компьютерам или даже указывать en-GB во всех случаях?

Edit - больше информации

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

показывает мне, что язык является "EN-US", - но я не знаю, почему это так.

ответ

0

ОК, только что понял, что я могу обновить свой стиль, чтобы сделать это.

Выполните следующие действия:

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