2010-11-12 1 views
0

Это сводит меня с ума!Форматирование даты в элементе управления DatePicker в Silverlight DataForm

У меня есть форма данных, управляемая службами RIA в silverlight, которая содержит элемент управления datepicker. Я хочу показать дату в формате ddMMMyyyy. Вот образец XAML:

<dataFormToolkit:DataForm x:Name="dataForm" AutoGenerateFields="False"> 
       <dataFormToolkit:DataForm.EditTemplate> 
        <DataTemplate> 
         <StackPanel> 
          <dataFormToolkit:DataField Label="First Name"> 
           <TextBox Text="{Binding PE_FIRST_NAME, Mode=TwoWay}"/> 
          </dataFormToolkit:DataField> 
          <dataFormToolkit:DataField Label="Surname"> 
           <TextBox Text="{Binding PE_SURNAME_NAME,Mode=TwoWay}"/> 
          </dataFormToolkit:DataField> 
          <dataFormToolkit:DataField Label="Department"> 
           <ComboBox x:Name="cboDepartment" DisplayMemberPath="CC_NAME" SelectedValuePath="CC_ID" SelectedValue="{Binding Path=CC_ID, Mode=TwoWay}"/> 
          </dataFormToolkit:DataField> 
          <dataFormToolkit:DataField Label="Start Date"> 
           <controls:DatePicker Text="{Binding PE_START_DATE, Mode=TwoWay}"/> 
          </dataFormToolkit:DataField> 
         </StackPanel> 
        </DataTemplate> 
       </dataFormToolkit:DataForm.EditTemplate> 
      </dataFormToolkit:DataForm> 
     </StackPanel> 

Я следовал советам в How to change date format in Silverlight DatePicker control? и добавил следующие строки в моем запуске приложения:

Thread.CurrentThread.CurrentCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone(); 
     Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = "ddMMMyyyy"; 

, но это не имеет никакого значения , дата всегда выводится в необработанном формате, например 1/3/2006 12:00 AM

Есть ли причина, почему текущая культура не работает в форме данных?

Обновление: Если я реализую ту же самую форму жестким способом, не используя форму данных, тогда дата находится в правильном формате!

ответ

2
controls:DatePicker Text="{Binding PE_START_DATE, Mode=TwoWay, StringFormat='d'}" 
1

Вам нужно добавить только привязку атрибута StringFormat = 'MM/dd/yyyy'.

<TextBox IsReadOnly="True" TextAlignment="Center" Text="{Binding AlbumDate, StringFormat='MM/dd/yyyy'}" />