2017-08-17 19 views
-2

私は多言語wpfプロジェクトを持っています。私はこれを行うためにResourceDictionaryを使用しています。WPF TextBlockが多国語でResourceDictionaryにバインド

<TextBlock Text="{Binding Sample, Source={StaticResource Resources}}" /> 

しかしどのように私は、動的TextBlockテキストを変更する必要があります。静的TextBlockのために私は、テキスト言語を変更することができます。このようにそれを行うことは不可能と思われる:

<TextBlock Text="{Binding Sample} 

そして、背後にあるコードで:

Sample = Resources.SampleText; 

をこれが不可能な場合。他のオプションはありますか?前もって感謝します!

+2

[データバインディングの概要](https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/data-binding-overview)を参照してください。 – Clemens

答えて

1

Sampleプロパティが定義されているクラスは、INotifyPropertyChangedインタフェースを実装し、変更通知を上げる必要があります。

public class Translations : INotifyPropertyChanged 
{ 
    private string _sample; 
    public string Sample 
    { 
     get { return _sample; } 
     set { _sample = value; OnPropertyChanged("Sample"); } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 
    public void OnPropertyChanged(string propertyName) 
    { 
     if (PropertyChanged != null) 
      PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
    } 
} 

だけにして、あなたは、単に新しいへSampleソースプロパティを設定することにより、動的にTextBlockを更新することができるようになります値。

関連する問題