1

現在、IValueConverterを使用して、ブール値をYes / Noテキストに変換し、RadGridViewに表示しています。

Public Function Convert(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
            Return If(CBool(value), "Yes", "No")
        End Function

ご覧のとおり、これは私の現在の実装です。ローカリゼーションを使用して、他の言語で「はい/いいえ」を表示するにはどうすればよいでしょうか。

誰かが親切にこれを手伝ってくれますか?

4

2 に答える 2

1

WPFUIでローカリゼーションを実装する方法はたくさんあります。

Microsoftのローカリゼーション手順を使用する

またはリソースファイルメソッドを使用します。これにはかなりの数の実装があり、ローカライズおよびソートするすべての要素にUidを与えるなどのオーバーヘッドがあるMicrosoftの方法よりもローカリゼーションがはるかに簡単になります。

リソースファイルのローカリゼーションを提供するそのようなプラグインの1つは、InfralutionWPFローカリゼーションです。

これはうまく機能しているようです(作成者はコードプロジェクトのバグへの返信に積極的であり、更新は迅速でMVVMに適しています)。添付の例は、作成者が受け入れることができる一連のターゲット値に基づいて実行時にビューの値をローカライズする方法を示す、あなたと同様の例を示しています。

コードプロジェクトの記事を読んで、付随する例を混乱させることをお勧めします。これを実装する方法については、はるかに優れたアイデアが必要です。

于 2013-03-04T11:14:12.213 に答える
0

IValueConverterを完全にスキップしてトリガーを使用すると、通常どおりテキストをローカライズできます。これは、テキストボックスでこれを実現するための例です。

    <TextBox.Style>
        <Style TargetType="TextBox">
            <Style.Triggers>
                <DataTrigger Binding="{Binding i}" Value="True">
                     <Setter Property="Text" Value="Yes"/>
                 </DataTrigger>
                 <DataTrigger Binding="{Binding i}" Value="False">
                     <Setter Property="Text" Value="No"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>

私があなたがバインドしているブール値であると仮定します。

于 2013-03-04T13:58:54.143 に答える