尝试将枚举值显示为 ComboBox 中的项目时,直接从 DataContext 绑定可能不够。为了解决这个问题,我们提出了两种方法来解决这个问题:通过代码和 XAML 绑定。
在 Window 的 Loaded 事件处理程序中,执行以下代码:
yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();
这将检索枚举值并将它们分配为组合框的项目
对于 XAML 绑定,请使用 ObjectDataProvider:
<ComboBox ItemsSource="{Binding Source={StaticResource dataFromEnum}}" SelectedItem="{Binding Path=CurrentEffectStyle}" />
在窗口的资源部分中,定义 ObjectDataProvider:
<ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues" ObjectType="{x:Type System:Enum}"> <ObjectDataProvider.MethodParameters> <x:Type TypeName="StyleAlias:EffectStyle"/> </ObjectDataProvider.MethodParameters> </ObjectDataProvider>
记得申报必要的命名空间:
xmlns:System="clr-namespace:System;assembly=mscorlib" xmlns:StyleAlias="clr-namespace:Motion.VideoEffects"
这些方法提供了将枚举绑定到 WPF 中的 ComboBox 控件的简单有效的方法。
以上是如何将枚举绑定到 WPF ComboBox 控件?的详细内容。更多信息请关注PHP中文网其他相关文章!