WPF 借助 FuncValueConverter 实现可显示自定义文本的通用枚举项选择弹窗 独立观察员 2025 年 1 月 12 日 一、前言 首先来解释一下标题中的 FuncValueConverter...以下动图展示了绑定了同一个枚举类型的两个枚举项选择弹窗,一个弹窗中显示的是枚举的描述,另一个弹窗中显示的是枚举的自定义显示文本: 枚举定义如下: 自定义文本如下: 调用方式,可以看到,两个弹窗创建时都需要一个枚举列表参数和一个当前选中项参数...,显示自定义文本的弹窗比显示枚举描述的弹窗多传一个自定义文本参数: 三、显示枚举描述的选择枚举弹窗 先来看看 .cs 代码: 也很简单,就是一个窗口类,然后有三个绑定属性(使用 Fody 简化,并在前端将...前端关键代码如下图(图中有具体解释,就不再赘述了),其中内容显示部分中用了一个获取枚举描述的转换器 GetEnumDescriptionConverter 将枚举描述显示出来: 四、显示自定义文本的选择枚举弹窗...WPFTemplateLib 项目(NuGet 包)中找到: 原创文章,转载请注明: 转载自 独立观察员 (dlgcy.com) 本文链接地址: [WPF 借助 FuncValueConverter 实现可显示自定义文本的通用枚举项选择弹窗
通过Restful接口返回的JSON数据默认是枚举的名字,但是使用自定义枚举时,一般统一使用自定义的code来代表。...所以需要自定义HttpMessageConverter CodedTypeTypeAdapter import com.google.gson.*; import com.utils.mybatis.CodedEnum...com.tenmao.web.mvc.support.HttpMessageConverter" /> 完成 实现上述步骤后,只要实现接口CodedEnum的自定义枚举都可以自动转换为其...code值 自定义枚举系列 自定义枚举 --- MyBatis字段映射 自定义枚举 --- Swagger文档展示
在其它两篇文章中,已经解决的自定义枚举在MyBatis以及Rest接口的转换,但是在Springfox中还存在问题,不能使用code来作为api。...本文通过扩展Springfox,实现了对自定义枚举的良好支持。 ps: 枚举的定义参见 自定义枚举 --- MyBatis字段映射 当前 ?...Springfox默认枚举 存在2个问题 类型显示为string,需要修改为integer 枚举的类型显示为枚举值,需要修改为枚举的code值(CodedEnum的定义请参见其他文章) 扩展后 ?...DocumentationType documentationType) { return true; } } ps: 这篇文章可能小众,但是原创性特别高,同类的网上资源特别少,建议收藏 自定义枚举系列...自定义枚举 --- MyBatis字段映射 自定义枚举 --- Gson转换 参考 Plugins Available For Extensibility springfox-swagger原理解析及使用过程中可能会遇到的坑
MyBatis自带的EnumTypeHandler转换为文字保存在数据库,EnumOrdinalTypeHandler使用的是序号,它们的一致性都可能被轻易地破坏,所以最好的办法是自定义一个int类型...自定义公共父接口 package com.tenmao.utils.mybatis; import java.util.Arrays; import java.util.Optional; public... 自定义枚举...getCode() { return code; } } ps: 参考资料写得特别好,我之所以重新写了一下,是资料写得有点啰嗦,比如子类的注册,其实都是自动的,不需要再额外配置 自定义枚举系列...自定义枚举 --- Gson转换 自定义枚举 --- Swagger文档展示 参考 如何在MyBatis中优雅的使用枚举
自定义枚举Validated校验注解 一、介绍 在以前的文章中,有解释使用过@Valid注解的使用 Valid注解使用及扩展 | 半月无霜 (banmoon.top) Validated分组校验及扩展...| 半月无霜 (banmoon.top) 本篇分享一个自定义校验注解,可以配合枚举使用,对入参的有效值进行校验。...Retention(RetentionPolicy.RUNTIME) public @interface EnumValid { String message() default "不符合的枚举类型...import lombok.NoArgsConstructor; import java.util.List; import java.util.Set; @Data @ApiModel("验证自定义校验注解
01 自定义类型 通过用户自定义类型,简化了verilog代码量并实现更多功能;用户自定义类型使得代码的可读性更强; 通过typedef来创建用户自定义类型; 通过enmu来创建枚举类型; 通过struct...typedef int unsigned unit;//定义新类型unit unit a,b;//unit自定义类型unit声明的2个变量 注意:为了代码可读性,通常添加“_t”后缀表示它是一个自定义类型...枚举类型(enum)可以描述变量的合法值范围,其每一个值都需要提供一个用户自定义的名字; 如枚举类型 IC可以拥有ICer1,ICer2,ICer3.....ICerN数值,即enum{ICer1,ICer2...[1:0] {WAITE,LOAD,READY} state; 自定义枚举类型 如果枚举类型变量被赋值,那么所赋的值应在其数值范围。...{ON=1’b1,OFF=1’b z} out; 如果枚举类型并没有伴随着typedef,那么该枚举类型指的是匿名枚举类型;此时变量名应伴随其后; 将typedef与enum合并,可以将匿名枚举类型声明为自定义类型
在和前端开发对接接口过程中经常发现需要一些枚举类的字典参数,虽然可以通过swagger在线文档给前端开发,不过可以直接返回枚举的编码和字典值就可以更直观,所以在项目里怎么实现?...可以通过Mybatis的一些接口,自定义枚举类的处理器实现 环境准备 开发环境 JDK 1.8 SpringBoot2.2.1 Maven 3.2+ 开发工具 IntelliJ IDEA smartGit...写一个枚举工具类,根据code和name返回对应枚举类,根据反射获取getEnumConstants,循环匹配 package com.example.springboot.mybatis.common.enumhandler...自定义Mybatis的类型转换器类,继承BaseTypeHandler,里面有几个需要实现的方法 void setNonNullParameter(PreparedStatement ps, int...EnumUtils.codeOf(this.type , code); } } yaml配置类型处理器 在application.yml里配置default-enum-type-handler,加上自定义的
定义枚举包含name和value字段,实现枚举转换接口,返回代码项名称 public enum EnableOrDisable implements IConvertEnumToCodeItem {...@Override public String getCodeName() { return "启用禁用"; } } 扫描转换枚举类...扫描项目包下的所有实现IConvertEnumToCodeItem接口需要转化的枚举类,拿到所有枚举项,调用接口的getCodeName方法获取代码项名称,最后组成代码项 public class CodeItemUtil...if(codeDic.containsKey(codeName)){ throw new Exception("存在同样的枚举代码项...} if(codeDic.keySet().size()>0){ System.out.println("扫描并初始化枚举代码项成功
前言 本文介绍自定义类型中的枚举 一、枚举 枚举,通俗来讲就是一一列举 要注意枚举的枚举常量是有限个数 例如,三原色:红黄蓝;性别:男、女、保密;…… 二、定义与声明 #define _CRT_SECURE_NO_WARNINGS..., 一般默认第一个枚举常量的值是0,后面的每一个枚举常量的值都是给前一个的值加一; 如果给第一个枚举常量进行赋值,则后面的枚举常量也会随之变化,规则也是加一。...三、枚举的优点 1.增加了代码的可读性和可维护性 例如:之前编写的小游戏主菜单就可以用枚举来将switch选择中的0、1、2进行替换,更方便阅读。...】 ②枚举类型由类型检查更加严谨(C语言中体现不多,但是C++会体现); 【只能拿枚举常量给枚举变量赋值才不会出现类型差异】 ③使用更方便,一次可以定义多个变量,用define就得一个一个定义。...---- 总结 本文主要介绍了自定义类型中的结构体类型的相关知识,希望这篇文章对你理解结构体有所帮助。
经过了前期的一段时间的学习,函数、操作符、类型等一些列的基本单位,操作符我们能用在很多特别而又细小的地方,函数也有着其自带的强大而又众多“库函数”(官方特供的轮子),在没有对应 库函数 的时候我们也可以自定义编写所需的自定义函数...---- 一、自定义类型是什么,主要有哪些? 自定义类型主要用于程序员面对众多需求时,需要将一些特殊的对象封装、命名或重定义,以达到更好的分类与标准化的统一管理。...比较常见的自定义类型主要分为3种:结构体、枚举、联合。 二、探窥自定义类型 1.结构体(struct) 1.1 结构的基础知识 结构是一些值的集合,这些值称为成员变量。...枚举 枚举顾名思义就是一一列举。 把可能的取值一一列举。 比如我们现实生活中: 一周的星期一到星期日是有限的7天,可以一一列举。 月份有12个月,也可以一一列举 这里就可以使用枚举了。...我们可以使用 #define 定义常量,为什么非要使用枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符比较枚举有类型检查,更加严谨。 3.
{}中的内容是枚举类型的可能取值,也叫 枚举常量 。 这些可能取值都是有值的,默认从0开始,依次递增1,当然在声明枚举类型的时候也可以赋初值。...定义常量,为什么非要使用枚举?...枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符比较枚举有类型检查,更加严谨。 3. 便于调试 4....Color clr = GREEN;//只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。...联合(共用体) 4.1 联合类型的定义 联合也是一种特殊的自定义类型 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。
自定义类型:结构体,枚举,联合 1....枚举 3.1 枚举的使用: 3.2 枚举的优点: 4. 联合(共用体) 4.1 联合类型的定义 4.2 联合的特点 4.3 联合大小的计算 5. 总结: 1....Day//星期 { //枚举常量 Mon=1, Tues, Wed, Thur, Fri, Sat, Sun }; 3.2 枚举的优点: 为什么使用枚举?...联合(共用体) 4.1 联合类型的定义 联合也是一种特殊的自定义类型。 这种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间(所以联合也叫共用体)。...总结: 通过以上的对自定义类型的详解,可以让我们根据实际情况和具体的需求来节省空间和时间上的消耗,从而获得最大的效益。好了,本篇文章的分享到此结束了,码字不易,你们的支持将是我坚持的不竭动力。
参考链接: Java枚举 java枚举自定义返回状态码 1.设计一个接口,接口定义了状态码,消息信息以及获取方式 public interface CodeEnum { /** *...getCode(); /** * 获取提示信息 * @return 提示信息 * **/ public String getMessage(); } 2.设计枚举类...实现上述接口,定义了具体的异常信息和状态码,当有新的状态码时,只需要添加一条对应的信息即可 public enum CodeEnumEntity implements CodeEnum { //自定义的状态码
问题描述 现在需要使用 EasyExcel 的报表导入导出功能,一般的字段都没有问题,但是由于系统使用了 Spring Boot + Mybatis Plus 的枚举类型映射功能,所以类似于 性别 的字段...@ExcelProperty(value = "性别(0:女,1:男)") private GenderType gender; 其中的枚举类使用了 @EnumValue 注解,完成了自动映射,这使得在查询数据库的时候...例如我们在 Excel 的性别字段中填写数字 1 表示的是枚举类型的性别 男 ,但是 EasyExcel 会认为要把数字类型的 1 转化为 枚举类型 GenderType,这样就会报错。...GenderType.WOMEN; } } /** * 将从数据库中查到的数据转换为 Excel 展示的数据 * * @param value 枚举对象...ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { // 将枚举类型按照
Spring Boot自定义配置项 配置文件 在application.properties文件添加需要的配置 比如: file.path=D:\\flies\\springboot\\ @ConfigurationProperties...注解 使用注解@ConfigurationProperties将配置项和实体Bean关联起来,实现配置项和实体类字段的关联,读取配置文件数据。
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
在平常web开发中, 或多或少的会使用到枚举类型 但是springboot对枚举的序列化并不太符合实际开发需求 比如 public enum MerchantStatusEnum { NORMAL...所以自定义枚举的序列化器进行自定义的序列化 改造如下 定义接口 public interface TypeEnum { /** * 由枚举实现 * * @return...枚举类的type字段 */ Integer getType(); /** * 由枚举实现 * * @return 枚举类的name字段...*/ String getName(); } 实现接口, 标记此枚举使用自定义的序列化方式 @Getter public enum MerchantStatusEnum implements TypeEnum...return unmodifiableMap.get(type); } return (E) enumMap.get(type); } } 自定义反序列化类
枚举性别 enum Sex { MALE, FEMALE, SECRET, }; //枚举三原色 enum Color { RED, GREEN..., BLUE, }; 这些枚举的值默认从0开始,依次递增1,也可以对枚举类型赋初值。...枚举类型的优点 我们也可以使用#define定义常量,为什么还有枚举? 枚举的优点: 1. 增加代码的可读性和可维护性。 2....枚举变量是遵循作用域规则的,枚举声明在函数内,只能在函数内使用。...6 枚举类型的使用 enum Color { RED=3, GREEN=7, BLUE=8, }; enum Color cls = GREEN;//使用枚举常量为枚举变量赋值
二、枚举类型 2.1 枚举类型的声明 枚举顾名思义就是⼀⼀列举。 把可能的取值⼀⼀列举。...2、 和#define定义的标识符⽐较枚举有类型检查,更加严谨。...#define定义的标识符是不过是一个符号,而枚举是一种类型,有类型检查写代码会更加严谨 3、 便于调试,预处理阶段会删除 #define 定义的符号 枚举类型在调试的时候会显示出成员名,但是#define...、枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤ 枚举有作用域的概念,在一个函数内部使用,出了函数就不能用了,但是#define定义的标识符没有作用域概念,他是一个全局都可以使用的常量。...2.3 枚举类型的使用 使用方法:使⽤枚举常量给枚举变量赋值 那是否可以拿整数给枚举变量赋值呢? 在C语⾔中是可以的,但是在C++是不⾏的,C++的类型检查⽐ 较严格。
前言 前面我们学习了一种自定义类型,结构体,现在我们学习另外两种自定义类型,联合 和 枚举。 正文开始—— 一、联合体 1....枚举类型的声明 枚举即列举,把可能取值一一列举出来。...{} 里面的内容是枚举类型的可能取值,也叫 枚举常量。 这些可能取值都是有值的,默认从0开始,依次递增1,在声明枚举类型的时候也可以赋初值。...枚举类型的优点 我们可以使用 #define 定义常量,为什么要使用枚举类型?...枚举类型的使用 enum Color { RED=3; GREEN=6; }; enum Color clr = GREEN; //使用枚举常量给枚举变量赋值 完——
领取专属 10元无门槛券
手把手带您无忧上云