多言語対応のWPFアプリケーションで作業しています。 私はこのarticleの手順に従い、私のプロジェクトにいくつかのリソース辞書を追加しました。 はその後、私は私が呼んでいるれ、次のような方法でウィンドウにこれらdictionarioesの1を追加 - テスト目的のために - ウィンドウのコンストラクタで:WPFでデザイン時に多言語のリソーステキストを表示する方法
private void SetLanguageDictionary()
{
ResourceDictionary dict = new ResourceDictionary();
switch (Thread.CurrentThread.CurrentCulture.ToString())
{
case "en-US":
case "en-GB":
dict.Source = new Uri("Resources\\StringResources_en-US.xaml",
UriKind.Relative);
break;
case "de-DE":
dict.Source = new Uri("Resources\\StringResources_de-DE.xaml",
UriKind.Relative);
break;
default:
dict.Source = new Uri("Resources\\StringResources_de-DE.xaml",
UriKind.Relative);
break;
}
Resources.MergedDictionaries.Add(dict);
}
最後に私は私のラベル内のリソースを実装しました
<Label Grid.Row="0"
Grid.Column="0"
Margin="5"
Content="{DynamicResource firstname}"></Label>
私のPC上の現在のカルチャーが "en-US"の場合、内容は「名」になります。 「de-DE」(ドイツ語)「Vorname」の場合。
実行時に正常に動作しますが、デザイン時にテキストが表示されません。
私は何をすればよいですか?
、私は{CommonDate、ソース= {StaticResourceリソースをバインド」=コンテンツを使用します}} "Resourcesはresources.resxです – 0x4f3759df
これは依存関係注入の仕事のようです。私はNuGetのMVVM Lightツールキットを使用しています。デフォルトでは、バインドするデータは2つのデータサービス(リポジトリ)のいずれかから来ます。デザインのダミーデータを扱うデザインデータサービスと、ランタイム。 viewmodelでは、バインディングするオブジェクトをdataserviceから取得しますが、どのdataserviceが使用されているかに応じて異なるオブジェクトを取得します(デザインモードかどうかによって異なります)。 https://mvvmlight.codeplex.com/ –