Использование значения enum напрямую имеет лучшую производительность, чем разбор строки каждый раз?

даю приложение, которое может быть использовано многими пользователями. Каждый пользователь классифицируется на один из следующих уровней аутентификации:

public enum AuthenticationEnum
{
    User,
    Technitian,     
    Administrator,
    Developer
}

Некоторые элементы управления (например, кнопки) доступны только для определенных уровней пользователей. У меня есть свойство, которое содержит уровень аутентификации текущего пользователя:

public AuthenticationEnum CurrentAuthenticationLevel { get; set; }

Я хочу связать это свойство со свойством Visibilty некоторых элементов управления и передать параметр в метод Converter, сообщив ему, какой уровень аутентификации является самым низким, который может видеть элемент управления. Например:

<Button Visibility="{Binding Path=CurrentAuthenticationLevel, Converter={StaticResource AuthenticationToVisibility}, ConverterParameter="Administrator"}"/>

означает, что только «Администратор» и «Разработчик» могут видеть кнопку. К сожалению, приведенный выше код передает «Администратор» в виде строки. Конечно, я могу использовать Switch-Case внутри метода преобразователя и преобразовать строку в AuthenticationEnum. Но это некрасиво и подвержено ошибкам обслуживания (каждый раз, когда меняется перечисление - метод преобразователя должен меняться).

Есть ли лучший способ передать нетривиальный объект в качестве параметра?

Ответы на вопрос(2)

Ваш ответ на вопрос