WPF(Windows Presentation Framework)로 작업할 때 데이터를 컨트롤에 바인딩해야 하는 경우가 흔합니다. 콤보박스 컨트롤. 데이터가 열거형으로 표현되는 경우 ComboBox 항목에 열거형 값을 직접 표시하는 것이 간단할 수 있습니다.
다음 시나리오를 고려해보세요. 다양한 속성을 캡슐화하는 클래스가 있고 ComboBox를 바인딩하려고 합니다. 열거형으로 표시되는 이러한 속성 중 하나에 연결됩니다. DataContext를 클래스 인스턴스로 설정하고 XAML 파일에서 바인딩 구문을 사용하는 것이 일반적인 접근 방식입니다. 그러나 이 접근 방식을 사용하면 열거형 값이 ComboBox에 항목으로 표시되지 않을 수 있습니다.
코드에서 열거형 값을 ComboBox에 직접 표시하려면 다음 단계를 따르세요. 취할 수 있습니다:
yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();
이 줄은 열거형 값을 검색하여 올바른 유형으로 변환하고 이를 ComboBox의 ItemsSource 속성에 할당합니다.
또는 다음을 사용하여 XAML에서 바인딩을 설정할 수 있습니다. ObjectDataProvider:
<Window> <Window.Resources> <ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues" ObjectType="{x:Type System:Enum}"> <ObjectDataProvider.MethodParameters> <x:Type TypeName="Motion.VideoEffects:EffectStyle"/> </ObjectDataProvider.MethodParameters> </ObjectDataProvider> </Window.Resources> <Grid> <ComboBox ItemsSource="{Binding Source={StaticResource dataFromEnum}}" SelectedItem="{Binding Path=CurrentEffectStyle}" /> </Grid> </Window>
이 XAML 코드는 창 리소스 내에서 ObjectDataProvider를 정의합니다. MethodName 속성은 열거형 값을 검색하는 GetValues로 설정됩니다. ObjectType 속성은 열거형의 유형을 지정하고 MethodParameters 속성은 데이터 공급자가 값을 검색해야 하는 열거형의 유형을 제공합니다.
XAML 코드에서 네임스페이스와 어셈블리가 열거형 유형을 제공해야 합니다.
xmlns:System="clr-namespace:System;assembly=mscorlib" xmlns:StyleAlias="clr-namespace:Motion.VideoEffects"
이러한 접근 방식을 사용하면 열거형 값을 WPF ComboBox 컨트롤에 바인딩하는 것이 가능해집니다. 드롭다운 목록에 열거형을 표시합니다.
위 내용은 WPF ComboBox 컨트롤에 열거형 값을 바인딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!