Я пытаюсь сделать генерацию таблицы настолько динамичной, насколько это возможно, но я сталкиваюсь с проблемой, связанной с использованием перечислений (Например, заголовок таблицы должен отображать всевозможное значение перечисления).
В частности, я имею дело с созданием 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