组合框MVVM上的WPF绑定枚举
在我的项目中,我需要bing以下枚举组合框MVVM上的WPF绑定枚举,wpf,mvvm,enums,combobox,Wpf,Mvvm,Enums,Combobox,在我的项目中,我需要bing以下枚举 public enum eFlex_IO_COMP_CM { ePan = 0, eComp = 1, } 进入一个组合框。我有一份公开名单,价值如下: public IEnumerable<eFlex_IO_COMP_CM> EnumFlexIoCompCm { get; set; } EnumFlexIoCompCm = Enum.GetValues(typeof(eFlex_IO_COMP_CM)).Cast<eF
public enum eFlex_IO_COMP_CM
{
ePan = 0,
eComp = 1,
}
进入一个组合框。我有一份公开名单,价值如下:
public IEnumerable<eFlex_IO_COMP_CM> EnumFlexIoCompCm { get; set; }
EnumFlexIoCompCm = Enum.GetValues(typeof(eFlex_IO_COMP_CM)).Cast<eFlex_IO_COMP_CM>();
public IEnumerable EnumFlexIoCompCm{get;set;}
EnumFlexIoCompCm=Enum.GetValues(typeof(eFlex_IO_COMP_CM)).Cast();
这是XAML代码:
<ComboBox
Grid.Column="20"
Width="50"
ItemsSource="{Binding Path=EnumFlexIoCompCm, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:ViewerFlexConfig}}"
SelectionChanged="Combo_SelectionChanged"
DisplayMemberPath="Value"
SelectedValuePath="Key"
SelectedValue="{Binding ConfigObject.COMP_CounterMode, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
/>
基本上,我想显示enum项的名称并将key设置为value,因为我需要在数据库中存储int而不是description。
问题是,我甚至无法显示枚举项的名称并正确设置值,就好像我试图保存一样,该组合框中的值就是name。有什么帮助吗?这对我很有帮助:请注意,
IEnumerable
不是字典。这些元素没有键
和值
属性。考虑将EndoFrimoCycm的类型更改为<代码>字典>代码>。当然,如果整数值是连续的,从0开始,您可以简单地将ItEsStand绑定到字符串或枚举值的集合,然后绑定StReDeDealType属性。删除<代码> DistPyByPoPT=“Valk”和SelectedValuePath =“KEY”< /C>。然后您应该在组合框中看到枚举值的“名称”ConfigObject.COMP_CounterMode
应该是一个eFlex_IO_COMP_CM
属性,您可以在需要时将其转换为int
:int val=(int)eFlex_IO_COMP_CM
Perfect@Clemens,我将我的IEnumerable转换为字典,所有工作都很好,谢谢!