반응형
ConverterParameter에서 열거형 사용
나는 많은 사용자들이 사용할 수 있는 애플리케이션을 만들고 있습니다.각 사용자는 다음 인증 수준 중 하나로 분류됩니다.
public enum AuthenticationEnum
{
User,
Technitian,
Administrator,
Developer
}
일부 컨트롤(예: 단추)은 특정 수준의 사용자에게만 노출됩니다.현재 사용자의 인증 수준을 보유하는 속성이 있습니다.
public AuthenticationEnum CurrentAuthenticationLevel { get; set; }
이 속성을 일부 컨트롤의 'Visibily' 속성에 바인딩하고 Converter 메서드에 매개 변수를 전달하여 컨트롤을 볼 수 있는 최저 인증 수준을 알려주려고 합니다.예:
<Button Visibility="{Binding Path=CurrentAuthenticationLevel, Converter={StaticResource AuthenticationToVisibility}, ConverterParameter="Administrator"}"/>
즉, 'Administrator'와 'Developer'만 버튼을 볼 수 있습니다.불행하게도 위의 코드는 통과합니다."Administrator"
끈으로물론 변환기 방식의 스위치/케이스를 사용하여 문자열을 변환할 수 있습니다.AuthenticationEnum
그러나 이는 보기 흉하고 유지보수 오류가 발생하기 쉽습니다(매번).enum
변경 - 변환기 방법도 변경해야 합니다.)
사소한 개체를 매개 변수로 전달하는 더 좋은 방법이 있습니까?
ArsenMkrt의 대답은 정확합니다.
이를 수행하는 또 다른 방법은 다음과 같습니다.x:Static
의 구문ConverterParameter
<Button ...
Visibility="{Binding Path=CurrentAuthenticationLevel,
Converter={StaticResource AuthenticationToVisibility},
ConverterParameter={x:Static local:AuthenticationEnum.Administrator}}"/>
그리고 변환기 안에서.
public class AuthenticationToVisibility : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
AuthenticationEnum authenticationEnum = (AuthenticationEnum)parameter;
//...
}
}
사용자
(AuthenticationEnum)Enum.Parse(typeof(AuthenticationEnum),parameter)
문자열을 열거자로 구문 분석하다
언급URL : https://stackoverflow.com/questions/4942501/using-enum-in-converterparameter
반응형
'programing' 카테고리의 다른 글
Node.js에서 종료하는 방법 (0) | 2023.06.04 |
---|---|
깃 - 원격:리포지토리를 찾을 수 없음 (0) | 2023.06.04 |
Swift에서 옵션의 기본값을 제공하시겠습니까? (0) | 2023.05.25 |
Eclipse, 정규식 검색 및 바꾸기 (0) | 2023.05.25 |
GitHub의 명령줄에서 pull 요청을 발행할 수 있습니까? (0) | 2023.05.25 |