Форматирование даты в элементе управления DatePicker в DataForm Silverlight - PullRequest
0 голосов
/ 12 ноября 2010

Это сводит меня с ума!

У меня есть управляемая RIA Services форма данных в 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>

Я последовал совету, данному в Как изменить формат даты в элементе управления Silverlight DatePicker? и добавил следующие строки в мой запуск приложения:

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 24 ноября 2010
controls:DatePicker Text="{Binding PE_START_DATE, Mode=TwoWay, StringFormat='d'}"
1 голос
/ 24 мая 2011

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

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