Привязка WPF к методу GetTranslation (строковый ключ) для локализации

Я новичок в WPF и сейчас работаю над своим первым приложением. В этом проекте я должен использовать этот метод для добавления локализации в приложение:

[TranslationService.cs]

public class TranslationService
{
        string language;


        public TranslationService(string language)
        {
            this.language = language;
        }

    public string GetTranslation(string key)
        {
            var value = *select the value from database based on "key" and "language"*
        return value;
        }
}

Я пытаюсь понять, как я могу использовать этот метод GetTranslation в XAML элегантным способом... но мне трудно.

Я после чего-то вроде этого:

[SomePage.xaml]

..
<TextBlock Text="{Binding source="_translator" parameter="WelcomeMessage" }" />
..

Я действительно пытался понять это сам, используя две книги WPF, которые у меня есть, и немного погуглив... но я теряюсь в новом синтаксисе...

Кто может помочь мне вернуться на правильный путь?


person Thomas Stock    schedule 15.09.2009    source источник


Ответы (1)


Если вы используете шаблон MVVM, вы можете поместить эту логику в свою ViewModel:

class MyViewModel
{
    private readonly TranslationService translator_;

    public string WelcomeMessageText
    {
        get { return translator_.GetTranslation("WelcomeMessage"); }
    }

    // ...
}

И привязать к этому в XAML:

<TextBlock Text="{Binding WelcomeMessageText}"/>
person Bojan Resnik    schedule 15.09.2009