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

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

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

  • 相关阅读:
    PyCharm 2020 激活到 2100 年
    PyTorch-22 学习 PyTorch 的 Examples
    机器视觉的主要研究内容和细分方向(超全超赞)
    CVPR 2020 全部论文 分类汇总和打包下载
    2020年,加油鸭
    SpiningUP 强化学习 中文文档
    大学C语言基础——30天挑战PAT甲级(一)
    明天提交辞职报告
    要开始新的技术之旅了
    记忆是件奇怪的东西
  • 原文地址:https://www.cnblogs.com/syqun/p/enum.html
Copyright © 2011-2022 走看看