C# UWP模板10汉堡菜单。以编程方式更新按钮文本

C# UWP模板10汉堡菜单。以编程方式更新按钮文本,c#,uwp,hamburger-menu,template10,C#,Uwp,Hamburger Menu,Template10,我有一个支持多种语言的应用程序。每种语言都保存在一个ResourceDictionary中,然后在运行时将其合并到主资源字典中。除了汉堡包菜单外,所有的东西都有用。菜单从不显示字典中的合并值。菜单中的每个按钮都将其文本绑定到静态资源 Hamburger菜单似乎是在App.xmal.cs中调用OnInitializeAsync之前创建的,因为这是我合并词典的地方,Hamburger菜单总是从主词典加载默认文本 在应用程序中,当我选择一种不同的语言时,应用程序上的其余部分将立即更改为新语言,但汉堡包

我有一个支持多种语言的应用程序。每种语言都保存在一个ResourceDictionary中,然后在运行时将其合并到主资源字典中。除了汉堡包菜单外,所有的东西都有用。菜单从不显示字典中的合并值。菜单中的每个按钮都将其文本绑定到静态资源

Hamburger菜单似乎是在App.xmal.cs中调用OnInitializeAsync之前创建的,因为这是我合并词典的地方,Hamburger菜单总是从主词典加载默认文本

在应用程序中,当我选择一种不同的语言时,应用程序上的其余部分将立即更改为新语言,但汉堡包菜单从不更新文本,我无法找到任何方法强制它更新文本


有人知道如何动态更改汉堡包菜单按钮上的文本吗?

这特别简单。记住,这只是XAML。在HamburgerButtonInfo中,您为TextBlock提供您拥有的文本。您所需要做的就是在该文本块中添加一个x:Name,您可以在Shell中随意更改它。我不确定这是否有意义,但我确实希望有意义。记住,这只是更新一个文本块,而不是用模板10更新某些内容。记住,这只是XAML

public class Shell
{
    public void UpdateText(string text)
    {
        this.MyTextBlock.Text = text;
    }
}

没什么特别的。

这特别简单。记住,这只是XAML。在HamburgerButtonInfo中,您为TextBlock提供您拥有的文本。您所需要做的就是在该文本块中添加一个x:Name,您可以在Shell中随意更改它。我不确定这是否有意义,但我确实希望有意义。记住,这只是更新一个文本块,而不是用模板10更新某些内容。记住,这只是XAML

public class Shell
{
    public void UpdateText(string text)
    {
        this.MyTextBlock.Text = text;
    }
}

没什么特别的。

我解决了在程序启动时更改菜单文本的问题。在OnInitializeAsync中,在执行任何其他操作之前,我首先执行字典合并。但我仍然无法在应用程序运行后更改菜单。如果您向我们提供示例应用程序,我们会更有用。我解决了在程序启动时更改菜单文本的问题。在OnInitializeAsync中,在执行任何其他操作之前,我首先执行字典合并。但我仍然无法在应用程序运行后更改菜单。如果您向我们提供示例应用程序,我们会更有用。因为我正在更改绑定所有按钮的词典,是否无法让汉堡包菜单自动刷新其所有内容?这意味着我必须遍历所有按钮,在xaml中找到每个按钮的文本,然后手动查找字典来更改文本。通常我可以调用NavigationService.Refresh()并更新所有内容。当我更改绑定所有按钮的字典时,是否无法让汉堡包菜单自动刷新所有内容?这意味着我必须遍历所有按钮,在xaml中找到每个按钮的文本,然后手动查找字典来更改文本。通常我可以调用NavigationService.Refresh()并更新所有内容。