4

私はWPF4アプリケーションを持っています。

そこで、UIコントロールをDateTimeOffSet値にバインドします。たとえば、テキストブロック

<TextBlock Text="{Binding Due.LocalDateTime,StringFormat='{}{0:dd MMM HH:mm}'}"/>

しかし、私は文化を意識した価値の表示を望んでいます。したがって、たとえばドイツでは24時間制の表現があり、アメリカではAM/PM表現があります。

これを実現するための最良/最も賢い方法は何ですか?covnerterが必要ですか?または、これをxamlで表す方法はありますか?また、日付フィールドの順序も異なります...

4

2 に答える 2

3

この疑わしい「設計による」動作には、多くの回避策があります。

http://connect.microsoft.com/VisualStudio/feedback/details/442569/wpf-binding-uses-the-wrong-currentculture-by-default

[地域の設定]コントロールパネルアプレットでユーザーが選択したカスタム設定を正確に複製するのは困難ですが、xml:lang属性を設定することで、一般的なロケール固有の設定を簡単に行うことができます。

たとえば、次のようなものをトップレベルのウィンドウ要素に追加できます。次に例を示します。

Language="{Binding Source={x:Static Globalization:CultureInfo.CurrentCulture}, Path=IetfLanguageTag,Mode=OneTime}"

繰り返しになりますが、ユーザーが選択したカスタム表示設定は無視されるため、これは完全ではないことを強調する必要があります。

于 2012-02-21T18:18:11.020 に答える
0

興味のある方へ:

<Window x:Class="ViewFolderChanges"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    ...
    xml:lang="el-GR" >

<TextBlock Text="{Binding ElementName=datefrom, Path=SelectedDate, StringFormat=ddd MM yyyy}" VerticalAlignment="Center" Padding="3,0" Margin="2,0,5,0"/>
于 2021-08-24T16:46:35.630 に答える