0

アプリの 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投げられます。どうやらリソースのセッターがこのように実装されているため、これは予想されることですが、それを回避する方法はありますか?

リソースを使用して、今後バインディングを簡単にしたいと考えています。

4

2 に答える 2

2

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

于 2012-08-20T09:20:11.153 に答える
1

私はその問題の解決策を見つけました。私を解決策に導いてくれたMilanAggarwalに感謝します。

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オブジェクトが作成される前に行われる必要があります。

于 2012-08-23T10:31:41.590 に答える