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 设计的一个小技巧

  • 相关阅读:
    EasyUI Datagrid换页不清出勾选方法
    【HDOJ】4902 Nice boat
    【HDOJ】1688 Sightseeing
    【HDOJ】3584 Cube
    【POJ】2155 Matrix
    【HDOJ】4109 Instrction Arrangement
    【HDOJ】3592 World Exhibition
    【POJ】2117 Electricity
    【HDOJ】4612 Warm up
    【HDOJ】2888 Check Corners
  • 原文地址:https://www.cnblogs.com/mjgb/p/2075103.html
Copyright © 2011-2022 走看看