Как связать перечисление с моим списком? - PullRequest
5 голосов
/ 14 октября 2010

У меня есть проект Silverlight (WP7), и я хотел бы привязать перечисление к списку. Это перечисление с пользовательскими значениями, расположенное в библиотеке классов. Как мне это сделать?

Ответы [ 3 ]

11 голосов
/ 14 октября 2010

В Silverlight (WP7) метод Enum.GetNames () недоступен.Вы можете использовать следующее

public class Enum<T>
{
    public static IEnumerable<string> GetNames()
    {
        var type = typeof(T);
        if (!type.IsEnum)
            throw new ArgumentException("Type '" + type.Name + "' is not an enum");

        return (
          from field in type.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static)
          where field.IsLiteral
          select field.Name).ToList<string>();
    }
}

Статический метод возвращает перечисляемую коллекцию строк.Вы можете связать это с источником элементов списка.Как

this.listBox1.ItemSource = Enum<Colors>.GetNames();
1 голос
/ 15 октября 2010

Используйте конвертер для этого. См. http://geekswithblogs.net/cskardon/archive/2008/10/16/databinding-an-enum-in-wpf.aspx.

0 голосов
/ 14 октября 2010

Преобразовать перечисление в список (или аналогичный) - согласно Как преобразовать перечисление в список в C #?

и затем связать с преобразованным списком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...