Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
组合框MVVM上的WPF绑定枚举_Wpf_Mvvm_Enums_Combobox - Fatal编程技术网

组合框MVVM上的WPF绑定枚举

组合框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

在我的项目中,我需要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<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转换为字典,所有工作都很好,谢谢!