博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在WPF中如何将Enum 绑定到 集合控件?
阅读量:6154 次
发布时间:2019-06-21

本文共 1223 字,大约阅读时间需要 4 分钟。

今日Google这个问题,呀,还真的在国外发现许多解决方法,其中经典的有:

 第一种,通过绑定转换器:

public sealed class EnumToNamesConverter : IValueConverter 

{
 
 
object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture) 
 
{
 
   
return Enum.GetNames(value.GetType()); 
 
} 
 
 
object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
 
{
 
   
throw New NotSupportedException() 
 
} 
} 

 

XAML

<local:EnumToNamesConverter x:Key="EnumToNamesConverter" />

 

<ComboBox ItemsSource="{Binding 

                        Source={x:Type local:CompassHeading}, 
                        Converter={StaticResource EnumToNamesConverter}}"
/> 

第二种,经典呀!通过继承MarkupExtension

 

[MarkupExtensionReturnType(typeof(object[]))] 

public class EnumValuesExtension : MarkupExtension 
{
 
   
public EnumValuesExtension() 
   
{
 
   
} 
 
   
public EnumValuesExtension(Type enumType) 
   
{
 
       
this.EnumType = enumType; 
   
} 
 
   
[ConstructorArgument("enumType")] 
   
public Type EnumType {
get; set; } 
 
   
public override object ProvideValue(IServiceProvider serviceProvider) 
   
{
 
       
if (this.EnumType == null) 
           
throw new ArgumentException("The enum type is not set"); 
       
return Enum.GetValues(this.EnumType); 
   
} 
} 

XAML

<ComboBox ItemsSource="{local:EnumValues local:EmployeeType}"/> 

 

 

转载于:https://www.cnblogs.com/sofire/archive/2010/03/19/1690111.html

你可能感兴趣的文章
***使用PHP实现文件上传和多文件上传
查看>>
mongodb的更新操作符
查看>>
FusionCube 9000 虚拟化之数据库场景(虚拟化超融合基础设施)
查看>>
Linux进程调度与源码分析(五)——schedule代码流程
查看>>
截获WndProc过程
查看>>
iOS设计模式FWZ
查看>>
python的参数传递
查看>>
cookie、session、sessionStorage 、localStorage 区别
查看>>
8.4 StringBuilder的介绍及用法(String 和StringBuilder区别)
查看>>
立场不同、所处环境不同的人,很难了解对方的感受;因此对别人的失意、挫折、伤痛,不宜幸灾乐祸,而应要有关怀、了解的心情。...
查看>>
python 基础笔记十四 - Excel的读写操作
查看>>
Cufon中文字符无法识别的解决方案
查看>>
Windows 8 Metro App开发之HelloWorld
查看>>
java03变量和基本数据类型
查看>>
SQL 求解每月周末天数
查看>>
C 里面 ---变量名-- 和 --地址-- 的关系探讨 <转>
查看>>
zabbix api 批量添加主机(python3 requests)
查看>>
20165208 预备作业3 Linux安装及学习
查看>>
java根据网卡名称获取IP
查看>>
推荐一些博客网站
查看>>