在Silverlight DataForm中格式化DatePicker控件中的日期

时间:2010-11-12 15:42:54

标签: silverlight datepicker dataform

这让我疯了!

我在Silverlight中有一个RIA Services驱动的数据表,其中包含一个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? 并将以下行添加到我的App启动:

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

但它没有任何区别,日期总是以原始格式出现,例如1/3/2006 12:00 AM

目前的文化在数据形式中不起作用是否有某种原因?

更新:如果我通过不使用数据表格来实现相同的表单,那么日期的格式正确!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您只需要在绑定中添加一个StringFormat ='MM / dd / yyyy'属​​性。

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