【问题标题】:WPF TextBlock binding to ResourceDictionary in mutilingualWPF TextBlock 以多语言绑定到 ResourceDictionary
【发布时间】:2017-08-17 05:45:48
【问题描述】:

我有一个多语种 wpf 项目。我正在使用 ResourceDictionary 来执行此操作。对于静态TextBlock,我可以通过以下方式更改文本语言:

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

但是我应该如何更改动态 TextBlock 文本。用这种方式似乎是不可能的:

<TextBlock Text="{Binding Sample}

在后面的代码中:

Sample = Resources.SampleText;

如果这是不可能的。还有其他选择吗?提前致谢!

【问题讨论】:

标签: c# wpf multilingual resourcedictionary


【解决方案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 源属性设置为新的string 值来动态更新TextBlock

【讨论】:

    猜你喜欢
    • 2013-04-04
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 2011-02-02
    相关资源
    最近更新 更多