Использование значения 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. Но это некрасиво и подвержено ошибкам обслуживания (каждый раз, когда меняется перечисление - метод преобразователя должен меняться).
Есть ли лучший способ передать нетривиальный объект в качестве параметра?