zoukankan      html  css  js  c++  java
  • 关于Enum Type 设计问题

    最近项目中遇到一个问题需要把一个enum type绑定到combox,而且要有space.开始定义如下

      public enum SearchConfigType
        {
            SmartFrequency,
            EveryNDays,
            Weekly,
            Monthly,
        }

    使用我们库函数AddSpaceBeforeUppercaseChar 有点问题SmartFrequency --> Smart Frequency,EveryNDays--->EveryN Days, 这个库函数在其他地方要用,不能修改。

    如果改成

      public enum SearchConfigType
        {
            Smart_Frequency,
            Every_N_Days,
            Weekly,
            Monthly,
        }

    可以使用

     public class EnumnToStringConverter : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                try
                {
                    if (value == null)
                        return null;
                     string name = value.ToString().Replace('_',' ');
                     return name.AddSpaceBeforeUppercaseChar();
                    
                }
                catch
                {
                    return value;
                }
            }

            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                throw new NotImplementedException();
            }
        }。

    只需要约定用‘_’来代替‘ ’,EnumnToStringConverter 可以自动实现add space. 在datagrid,combox绑定Enumn 都能使用。这也是Type 设计的一个小技巧

  • 相关阅读:
    sge的简单的应用
    dcoker 小应用(二)
    浅谈Docker(二)
    查看Linux版本
    dcoker 小应用(一)
    linux 强制重启!
    浅谈Docker(一)
    ubuntu command
    简析hotjar录屏功能实现原理
    实现node端渲染图表的简单方案
  • 原文地址:https://www.cnblogs.com/mjgb/p/2075103.html
Copyright © 2011-2022 走看看