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