我想要达到的目标
我有一个 WPF 应用程序(它只是用于测试),我想将标签的文本(内容)绑定到某个地方的属性。这个想法是当用户选择不同的语言时,这个属性值将会改变。当属性更改时,我希望标签文本使用新值进行更新。
我试过的
我试图为标签值创建一个具有静态属性的静态类。例如:
public static class Language
{
public static string Name = "Name";
}
然后我可以使用 XAML 将此值绑定到我的标签,如下所示:
Content="{Binding Source={x:Static lang:Language.Name}}"
这可以很好地显示“名称”的初始值。问题是,当Name
属性更改时,标签值不会更改。
所以,回到绘图板(谷歌)。然后我发现这个答案听起来和我需要的完全一样。所以这是我的新尝试:
public class Language
{
public static Language Instance { get; private set; }
static Language() { Instance = new Language(); }
private Language() { }
private string name = "Name";
public string Name { get { return name; } set { name = value; } }
}
用我的绑定改变了它:
Content="{Binding Source={x:Static lang:Language.Instance}, Path=Name}"
这仍然会导致同样的问题。
问题
我在这里想念什么?当值更改时,如何让标签更新?