2009-11-09 3 views
1

У меня есть файл ресурсов с именем filetypes.resx. Некоторые из того, как я решил связать значения ресурсов с выпадающим списком, но я не знаю, как сортировать значения ResourceSet.Как отсортировать ResourceSet в C#

Вот что я сделал до сих пор,

FileTypes.resx

  • Name, Value
  • A, 1

  • B, 2

  • C, 3

код для связывания DROPDOWNLIST


DropDownList1.DataSource = Resources.FileTypes.ResourceManager.GetResourceSet(System.Globalization.CultureInfo.CurrentCulture, true, true); 
DropDownList1.DataTextField = "Key"; 
DropDownList1.DataValueField = "Value"; 
DropDownList1.DataBind(); 

Результат

 
A 
C 
B 
As you can see the result is not sorted. Please help me to solve this issue. 

Большое спасибо заранее :)

ответ

7

Набор Ressource имеет IDictionaryEnumerator, так что я думаю, что ее элементы типа DictionaryEntry, попытайтесь разобраться источник данных, как это:

DropDownList1.DataSource = Resources.FileTypes.ResourceManager 
    .GetResourceSet(System.Globalization.CultureInfo.CurrentCulture, true, true) 
    .OfType<DictionaryEntry>() 
    .OrderBy(i => i.Value); 

Hum, у меня нет никаких визуальных студии открылись, так что не вините меня в случае, если он не работает :)

немедленно
1

ResourceSet имеет a property named Table, типа HashTable. Возможно, вы можете создать отсортированный список из этой таблицы (вручную или с помощью LINQ), а затем назначить этот список DropDownList1.DataSource.

0

Hashtable tbl = Resources.FileTypes.ResourceManager. 
GetResourceSet(System.Globalization.CultureInfo.CurrentCulture, true, true).Table; 
List source = new List(tbl.Values); 
source.Sort(); 
DropDownList1.DataSource = source; 
DropDownList1.DataBind(); 

+0

Хотя этот код может ответить на вопрос, обеспечивая дополнительный контекст относительно того, почему и/или, как он отвечает на вопрос, будет значительно улучшить свою долгосрочную ценность. Измените свой ответ, чтобы добавить какое-то объяснение. – gevorg

Смежные вопросы