使用WPF(Windows 演示框架)時,通常會遇到需要將資料綁定定到組合框控制項。如果資料表示為枚舉,則直接在 ComboBox 項中顯示枚舉值可以很簡單。
考慮以下場景:您有一個封裝各種屬性的類,並且希望綁定您的 ComboBox這些屬性之一,表示為枚舉。將 DataContext 設定為類別實例並在 XAML 檔案中使用綁定語法是一種典型的方法。但是,這種方法可能不會導致枚舉值在組合框中顯示為項目。
要從程式碼直接在組合方塊中顯示枚舉值,請執行下列步驟可以採取:
yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();
此行會擷取枚舉值,將它們轉換為正確的類型,並將它們指派給ComboBox 的 ItemsSource 屬性。
或者,可以使用XAML 在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中文網其他相關文章!