当前位置: 首页 > news >正文

WPF 表格中单元格使用下拉框显示枚举属性的一种方式

1.实体类中有枚举类型的属性:

public class BelowCameraPosition: MachinePositionBase
{public CameraPosition CameraPositionType { get; set; }
}
public enum CameraPosition
{[Description("×")]Null,[Description("避让位置")]Avoid
}

然后使用表格控件显示实体类列表,这里的控件可能是第三方控件,我这里演示的也是第三方控件实现的。

第一步:

定义转换器,提供下拉框资源:

public class EnumToItemsSourceConverter : IValueConverter
{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if (value == null || !value.GetType().IsEnum)return null;var enumType = value.GetType();var items = new List<KeyValuePair<string, object>>();foreach (var enumValue in Enum.GetValues(enumType)){var field = enumType.GetField(enumValue.ToString());var attribute = field.GetCustomAttribute<DescriptionAttribute>();var displayName = attribute?.Description ?? enumValue.ToString();items.Add(new KeyValuePair<string, object>(displayName, enumValue));}return items;}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){throw new NotImplementedException();}
}

第二步:

修改表格列定义:

<telerik:GridViewComboBoxColumnWidth="*"DataMemberBinding="{Binding CameraPositionType, Mode=TwoWay}"Header="类型"ItemsSourceBinding="{Binding CameraPositionType, Converter={StaticResource EnumToItemsSourceConverter}}"DisplayMemberPath="Key"SelectedValuePath="Value" />

效果:

其中类型一列即为枚举列

完毕。

http://www.dtcms.com/a/320860.html

相关文章:

  • Ignite内部事件总线揭秘
  • SQL Server 2019搭建AlwaysOn高可用集群
  • Java学习进阶--集合体系结构
  • Redis是单线程性能还高的原因
  • SiLM92108高度集成8通道门极驱动,赋能汽车与工业电机精准控制
  • 【SpringBoot】SpringBoot配置
  • Go语言实战案例:用net/http构建一个RESTful API
  • 微信小程序功能 表单密码强度验证
  • 主播生活模拟器2|主播人生模拟器2 (Streamer Life Simulator 2)免安装中文版
  • 具身智能模型赋能工业巡检:Deepoc开发板如何重塑机器人认知边界
  • AI搜索引擎——DeepSeek崛起 || #AIcoding·八月创作之星挑战赛# || 简单版
  • 嵌入式硬件接口总结
  • 免费PDF翻译 离线自建
  • 免费PDF批量加密工具
  • 麦肯锡如何围绕AI有效地重塑业务
  • 2025产品经理接单经验分享与平台汇总
  • 腾讯云 CodeBuddy IDE:可以使用gpt5的ide
  • 如何将视频转为GIF格式,3大视频转为GIF工具
  • RAG上下文工程与提示词优化
  • 全栈:Tomcat 安装教程
  • Servlet技术详解(含Tomcat)未完
  • 论文阅读:User Behavior Simulation with Large Language Model-based Agents
  • 如何实现在多跳UDP传输场景,保证单文件和多文件完整传输的成功率?
  • 人工智能之数学基础:事件独立性
  • mysql/doris如何高效删除历史数据
  • SimpleMindMap:一个强大的Web思维导图
  • 【性能测试】-2- JMeter工具的使用
  • 文件结构树的├、└、─ 符号
  • 数据仓库知识
  • apache cgi测试