zoukankan      html  css  js  c++  java
  • 在WPF中如何将Enum 绑定到 集合控件?

    今日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}"/> 

  • 相关阅读:
    RAC安装时,报The specified nodes are not clusterable 的解决方法
    Unix sar 命令
    Linux 修改 IP地址 和 网关
    Oracle ASM 详解
    RAC安装时需要执行4个脚本及意义
    RAC 的一些概念性和原理性的知识
    Oracle 10g RAC 启动与关闭
    Oracle RAC 修改 IP 地址
    Linux 时间同步配置
    RAC安装时,报The specified nodes are not clusterable 的解决方法
  • 原文地址:https://www.cnblogs.com/sofire/p/1690111.html
Copyright © 2011-2022 走看看