1

ローカリゼーションをサポートする必要があるWPFアプリケーションがあります。2つのボタン(追加、削除)とコンボボックス(英語、フランス語)があります。フランス語を選択すると、ボタンの内容が(ajouter、effacer)に変わるはずです。

さて、私の質問は、コードビハインドでボタンのコンテンツを手動で設定した場合の欠点または欠点は何でしょうか?以下のコードを参照してください。

private void comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
  ResourceDictionary currentLanguage = new ResourceDictionary();

  switch (comboBox.Text)
  {
    case "english": 
      currentLanguage.Source = new Uri("../en-US.xaml", UriKind.RelativeOrAbsolute);
      break;
    case "france": 
      currentLanguage.Source = new Uri("../fr-FR.xaml", UriKind.RelativeOrAbsolute);
      break;
  }

  btnAdd.Content = Resources.GetString("insert");
  btnDelete.Content = Resources.GetString("delete");
}

私はその種類の奇妙なことを知っていますが、親切にそれに答えます。アプリケーションをこのようにローカライズすべきではないのはなぜですか。

ありがとう!

4

1 に答える 1

3

リソース ディクショナリを交換するときは、XAML で BasicDynamicResourcesの代わりに使用する必要があります。次のようにします。StaticResources

XAML

  <Button Content="{DynamicResource Insert}"/>
  <Button Content="{DynamicResource Delete}"/>

リソース ディクショナリで x:Key を使用して挿入と削除を行う場所

辞書を交換すると、これらは動的に更新されます

于 2012-06-06T14:16:20.150 に答える