首页 >后端开发 >C++ >如何将枚举绑定到 WPF ComboBox?

如何将枚举绑定到 WPF ComboBox?

Susan Sarandon
Susan Sarandon原创
2025-01-05 01:09:40482浏览

How to Bind an Enum to a WPF ComboBox?

WPF 中的枚举到 ComboBox 绑定

问题

尝试在不添加其他显示字符串的情况下将枚举值显示为 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn