2015-05-19 57 views
0

在我的App.xaml我有這個組x:字符串值從C#

<Application.Resources> 
    <!-- Application-specific resources --> 

    <x:String x:Key="AppName">My Application</x:String> 

</Application.Resources> 

但實際上,我已經把它在我的不斷代碼例子是這樣的。

public const string AppName = "Test App"; 

我可以將AppName從app.xaml設置爲該常量嗎?我知道更簡單的編輯app.xaml。但我有更多的情況。

回答

-1

在C#語法中const的含義意味着你將無法改變它。 const表示編譯器將用該值替換該變量的任何用法。基本上意味着在編譯之後,沒有改變的機會。 如果這不是一個常量,那麼你可以使用ResourceManager來獲取值並用它設置變量。

XAML中的資源可以使用鍵像這樣

this.Resources["AppName"] 

進行訪問,但Application.Resources並非設計用於存儲字符串值。應該使用正常的.Net資源。如果您使用Visual Studio,則可以通過將資源文件添加到Visual Studio中的項目來輕鬆實現此目的。如果您調用資源文件,讓我們說'MyValues.resx',那麼Visual Studio將爲您創建並維護一個名爲MyValues的生成類。如果打開,只是一個字符串添加到它,稱它讓我們說「MyApplicationTitle」,那麼,只需在你的C#代碼,你可以使用它像這樣

public static string AppName = MyValues.MyApplicationTitle 
+0

如果究竟是不是一個常量?所以我需要將其改爲靜態。我只是在我的應用程序中更改該AppName一次... – albilaga

+0

我必須對你試圖做的事情做一些猜測。 Application.Resources通常用於定義Xaml應用程序中的背景。我更新我的答案,涵蓋如何在資源中存儲字符串並在代碼中使用它們 – n00b

+0

我知道如何使用resx。我的意思是app.xaml x:string如何從它後面的C#代碼中獲取值?因爲在app.xaml中我無法綁定它 – albilaga