簡體   English   中英

通過C#設置Application.Resources

[英]Setting Application.Resources through C#

我的應用程序的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 這是可以預期的,因為顯然資源的設置器是通過這種方式實現的,但是有沒有解決的辦法?

我想利用這些資源使綁定變得容易。

試試: App.Current.Resources.Add("Key",Value);

我找到了解決問題的辦法。 非常感謝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對象之前進行資源更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM