我正在尝试创建一个多语言WPF程序,它将从xml路径加载它的语言,虽然我在加载MenuItem转换时遇到问题并给它加速器。
这是主要代码:
<Window.Resources>
<XmlDataProvider x:Key="Lang" Source="/lang/english.xml" XPath="Language/MainWindow"/>
</Window.Resources>
<MenuItem Header="{Binding Source={StaticResource Lang}, XPath=MenuItems/MenuItemFile/@Header}"/>
以下是我的语言文件的样子:
<?xml version="1.0" encoding="utf-8" ?>
<Language>
<MainWindow>
<MenuItems>
<MenuItemFile Header="File" />
</MenuItems>
</MainWindow>
</Language>
我的问题是: 在这种语言文件的状态下,一切正常,但是当我试图将MenuItemFile的Header更改为“_File”(给它一个加速器选项)时,程序启动并向File菜单提供Header“_File”而不是“文件”(和加速器)。
先谢谢了, 嚣。
答案 0 :(得分:1)
绑定到AccessText
,而不是直接绑定到Header
:
<MenuItem>
<MenuItem.Header>
<AccessText Text="{Binding Source={StaticResource Lang}, XPath=MenuItems/MenuItemFile/@Header}"/>
</MenuItem.Header>
</MenuItem>