Выберите, какой перечислитель использовать из значения переменной - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь сделать генерацию таблицы настолько динамичной, насколько это возможно, но я сталкиваюсь с проблемой, связанной с использованием перечислений (Например, заголовок таблицы должен отображать всевозможное значение перечисления).

В частности, я имею дело с созданием 2-мерной таблицы пользовательского интерфейса для краткого изложения активных проектов пользователя, в которых можно найти заголовок таблицы (столбцы)Приоритет проекта и строки могут быть обнаружены пользователем, создавшим проект

       | high | normal | low  | 
-------+------+--------+------+
user_A |  5   |   8    |  3   |
-------+------+--------+------+
user_B |  7   |   0    |  1   |  
-------+------+--------+------+

. В этом сценарии High, Normal, Low являются частью перечисления, определяющего приоритет, но та же самая структура таблицы можетприменяется, если вместо приоритета пользователь хочет видеть различные состояния, которые имеет проект (открыто, выполняется, истек, закрыт и т. д.)
Пользователь также может менять столбцы и строки, но таблица должнатот же результат

Проблема, которую я нахожу, заключается в том, что я точно не знаю, содержит ли заголовок перечисление или какое перечисление предназначено для использованияпользователем.
Есть ли способ выбрать, какое перечисление я должен использовать, основываясь на значении переменной, не делая Select Case [variable_name] со всеми перечислениями в моем коде?

Я подумал, что, возможно, System.Enum.Parse может быть полезным, но в качестве первого аргумента требуется информация System.Type, а не переменная с именем типа в качестве значения

Для справки я пытаюсь получить следующую ситуацию

Public Enum foo
    a = 0
    b = 1
End Enum

Public Enum foo1
    x = 0
    y = 1
    z = 2
End Enum

Dim var As String = "foo"
Dim choosenEnum As [var_value]
For Each val As Integer In choosenEnum.GetValues
    System.Enum.GetName([var_value], val)
    'add the found name to the table
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...