尝试在不添加其他显示字符串的情况下将枚举值显示为 ComboBox 中的项目已证明不成功。 XAML 代码使用绑定到类属性,但枚举值不会出现。
通过代码绑定
在加载的窗口中事件处理程序,使用枚举填充 ItemsSource 属性值:
yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();
在 XAML 中绑定
使用 ObjectDataProvider:
<Window.Resources> <ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues" ObjectType="{x:Type System:Enum}"> <ObjectDataProvider.MethodParameters> <x:Type TypeName="StyleAlias:EffectStyle"/> </ObjectDataProvider.MethodParameters> </ObjectDataProvider> </Window.Resources> <Grid> <ComboBox ItemsSource="{Binding Source={StaticResource dataFromEnum}}" SelectedItem="{Binding Path=CurrentEffectStyle}" /> </Grid>
命名空间映射
注意别名的使用命名空间:
xmlns:System="clr-namespace:System;assembly=mscorlib" xmlns:StyleAlias="clr-namespace:Motion.VideoEffects"
有关命名空间和程序集的正确映射,请参阅 MSDN 文档。
以上是如何将枚举绑定到 WPF ComboBox?的详细内容。更多信息请关注PHP中文网其他相关文章!