2012-08-04 51 views
0

爲了保持組織結構和跟蹤WPF/XAML項目中使用的所有資源名稱/密鑰,我想將資源字典中使用的所有密鑰存儲在一個靜態類中,該類用常量填充。我想我記得關於在代碼中避免字符串文字的一些事情。將資源的密鑰存儲在靜態類中是一個好主意嗎?

喜歡的東西:

<!-- itemtemplates.xaml -- a resource dictionary --> 
<Style x:Key="{x:Static local:ResourceKeys.TaskItemItemTemplateKey}" ....> 
    .... 
</Style> 

// ResourceKeys.cs 
internal static class ResourceKeys { 
    internal static object TaskItemItemTemplateKey { 
     get { return __some_readonly_unique_key_object; } 
    } 
    internal static object SomeReallyUglyGradientBrushKey { 
     get { return __some_other_unique_key; } 
    } 
} 

這是一個好主意,考慮到我的項目將可能超過1000個資源達到。

回答

1

如果你有那麼多的資源,你可能想按照類型,適用區域或其他可能在你的上下文中有意義的幾個類來分解它。至於這樣做一般:爲什麼不呢?例如SystemColors也是如此。

0

解決方案的問題是您必須輸入兩次每個資源。這對於1000個項目來說是相當有效的......所有資源名稱的列表可以很容易地找到(resource.Keys)。如果你使用命名約定,你可以在花費很少的情況下輸入一些命令。然後,如果您想擁有色彩資源,則可以執行一些操作:在rs.beginswith(「Color」)的Application.resources.Keys中選擇rs。

+0

我使用小腳本自動生成靜態類。 – Minustar 2012-08-06 15:28:46

+0

你使用T4嗎? – GameAlchemist 2012-08-06 23:09:38

+0

Nope,一個小型的c#應用程序,它接收所有資源的鍵並將它們包裝在靜態只讀屬性中。實際上,我發現20%以上的風格都是不必要的,因爲他們只是做了同樣的事情。 – Minustar 2012-08-07 03:18:08

相關問題