これは私を夢中にさせています!
日付ピッカー コントロールを含む Silverlight の RIA サービス ドリブン データフォームがあります。日付を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:00AM などです。
現在のカルチャがデータフォームで機能しない理由はありますか?
更新: データフォームを使用せずに同じフォームを難しい方法で実装すると、日付は正しい形式になります!