WPF ComboBox绑定枚举并显示Description的实现方法咨询
问题解答
- 可以不使用转换器实现。WPF内置了对枚举Description特性的格式化支持,无需自定义转换器类就能读取并显示特性内容。
- 可以仅通过XAML完成实现。不需要修改任何C#代码,只需要调整ComboBox的XAML配置即可达成需求。
- 最简单的实现方法:
直接修改现有ComboBox的XAML,添加ItemTemplate并利用内置的枚举格式化语法,保留原有的数据源和选中值绑定:
这样修改后,ComboBox下拉列表会显示枚举的Description内容,选中值依然是<ComboBox Grid.Row="8" Grid.Column="2" Width="194" Height="40" Margin="0,0,3,0" HorizontalAlignment="Right" VerticalContentAlignment="Center" ItemsSource="{Binding Source={StaticResource IVAC_VT_SHIFT_SPD}}" SelectedValue="{Binding VTShiftSPD}"> <ComboBox.ItemTemplate> <DataTemplate> <!-- 利用WPF内置的枚举格式化,直接读取Description特性 --> <TextBlock Text="{Binding Path=., StringFormat='{}{0:Description}'}" /> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> <!-- 保留原有的ObjectDataProvider配置不变 --> <ObjectDataProvider x:Key="IVAC_VT_SHIFT_SPD" MethodName="GetValues" ObjectType="{x:Type System:Enum}"> <ObjectDataProvider.MethodParameters> <x:Type TypeName="enm:IVAC_VT_SHIFT_SPD" /> </ObjectDataProvider.MethodParameters> </ObjectDataProvider>IVAC_VT_SHIFT_SPD枚举类型,完全符合需求,实现过程简洁且无需额外代码。
内容的提问来源于stack exchange,提问作者하하파파
相关产品推荐
相关产品推荐

