文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>关于Enum Type 设计问题

关于Enum Type 设计问题

时间:2011-06-08  来源:mjg

最近项目中遇到一个问题需要把一个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 设计的一个小技巧

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载