我在我的应用程序的App.xaml文件中有这个资源。
//App.xaml
<Application.Resources>
<sys:String x:Key="ApplicationTitle">FUEL CONSUMPTION</sys:String>
</Application.Resources>
这非常有效!但我正在尝试通过代码隐藏文件设置资源,如下所示:
// MainPage.xaml.cs#PhoneApplicationPage_Loaded event
// To get the assembly version number
var nameHelper =
new System.Reflection.AssemblyName
(System.Reflection.Assembly.GetExecutingAssembly().FullName);
// To change the application title based on the assembly version
Application.Current.Resources["ApplicationTitle"] = "FUEL CONSUMPTION - v" +
nameHelper.Version.Major + "." + nameHelper.Version.Minor;
但是每当我尝试分配它时,我都会被NotImplentedException
抛向我。这是预期的,因为显然资源的制定者是以这种方式实现的,但有没有办法实现呢?
我希望利用这些资源轻松实现绑定。
答案 0 :(得分:2)
尝试:App.Current.Resources.Add("Key",Value);
答案 1 :(得分:1)
我找到了问题的解决方案。非常感谢 Milan Aggarwal 让我加入解决方案。
解决方案是将以下代码放入Application_Launching
事件处理程序。
var nameHelper = new System.Reflection.AssemblyName
(System.Reflection.Assembly.GetExecutingAssembly().FullName);
if (Application.Current.Resources.Contains("ApplicationTitle"))
Application.Current.Resources.Remove("ApplicationTitle");
Application.Current.Resources.Add("ApplicationTitle",
"FUEL CONSUMPTION - v" + nameHelper.Version.Major + "." +
nameHelper.Version.Minor);
如果绑定对象已更新,则应用程序标题不会更新。资源的更改必须在创建PhoneApplicationPage
对象之前发生。