界面控件DevExpress WinForms Lookup中文教程 - 如何实现多项目选择?
在最新发布的v23.1版本中DevExpress WinForms Lookup Editor查找编辑器引入了一个非常受欢迎的功能——多项选择。在这种新的选择模式下Lookup Editor显示一个带有复选框的列用户可以使用鼠标或键盘选择查找项。DevExpress WinForms拥有180组件和UI库能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序无论是Office风格的界面还是分析处理大批量的业务数据它都能轻松胜任DevExpress新旧版本帮助文档下载可进QQ qun获取169725316启用多项选择使用EditValueType属性来启用多项选择此属性指定Lookup如何在其EditValue属性中存储所选值。可用的选项包括LookUpEditValueType.ValueList —Lookup将选择的值存储为对象(Listobject)。LookUpEditValueType.CSVString — Lookup将选定的值存储为带有逗号分隔值的字符串。下面的示例演示如何激活多项选择将查找的EditValue属性设置为一个带有id的列表以便在应用程序启动时选择相应的产品。using System.Windows.Forms; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Repository; public partial class Form1 : XtraForm { public Form1() { InitializeComponent(); lookUpEdit1.Properties.DataSource ProductA.GetList(); lookUpEdit1.Properties.DisplayMember Name; lookUpEdit1.Properties.ValueMember ID; lookUpEdit1.Properties.EditValueType LookUpEditValueType.ValueList; lookUpEdit1.EditValue new Listobject() {0, 1, 4}; } } public class ProductA { int id; public ProductA(int id) { this.id id; } [Display(Order -1)] public int ID { get { return id; } } [Display(ShortName Bakery Desserts)] public string Name { get; set; } [DisplayFormat(DataFormatString c2)] public double Price { get; set; } public static ListProductA GetList() { return new ListProductA() { new ProductA(0){ Name Butter Cake, Price 56.99 }, new ProductA(1){ Name Chocolate Pie , Price 89.99 }, new ProductA(2){ Name Frozen Cookie Dough, Price 54.99 }, new ProductA(3){ Name Truffie Cake, Price 59.99 }, new ProductA(4){ Name Original Apple Pie, Price 59.99 } }; } }将选定状态绑定到数据Lookup Editor查找编辑器可以保存有关数据源字段中所选项的信息使用CheckBoxSelectorName属性指定包含所选项信息的字段名。如果此字段包含非布尔值类型您还应该处理以下事件来根据需要 convert 字段值QueryCheckBoxSelectorMemberIsSelectedSetCheckBoxSelectorMemberValue如何绑定到布尔数据字段下面的示例演示了如何将选择绑定到“Selected”字段(带有布尔值)public partial class Form1 : XtraForm { public Form1() { InitializeComponent(); lookUpEdit2.Properties.DataSource ProductB.GetList(); lookUpEdit2.Properties.DisplayMember Name; lookUpEdit2.Properties.ValueMember ID; lookUpEdit2.Properties.CheckBoxSelectorMember Selected; lookUpEdit2.Properties.EditValueType LookUpEditValueType.ValueList; lookUpEdit2.EditValue new Listobject() {0, 1}; } } public class ProductB { int id; public ProductB(int id) { this.id id; } [Display(Order -1)] public int ID { get { return id; } } [Display(ShortName Bakery Desserts)] public string Name { get; set; } [DisplayFormat(DataFormatString c2)] public double Price { get; set; } public int InStock { get; set; } [Display(ShortName Add to Order)] public bool Selected { get; set; } public static ListProductB GetProductList() { return new ListProductB() { new ProductB(0){ Name Butter Cake, Price 56.99, InStock 50 }, new ProductB(1){ Name Chocolate Pie , Price 89.99, InStock 32 }, new ProductB(2){ Name Frozen Cookie Dough, Price 54.99, InStock 0 }, new ProductB(3){ Name Truffie Cake, Price 59.99, InStock 42 }, new ProductB(4){ Name Original Apple Pie, Price 59.99, InStock 0} }; } }从下面的截图中可以看到lookup创建了一个选择器列(Add to Order)并将其绑定到“Selected”数据字段。如何绑定到集合属性如果将EditValueType属性设置为LookUpEditValueType.ValueList则可以将查找的EditValue属性绑定到只读集合类型属性这个操作是由EnableEditValueCollectionEditing 设置控制的(默认情况下是启用的)。using System.Windows.Forms; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Repository; public partial class Form1 : XtraForm { ListItem orderItems; ListOrder orders; public Form1() { InitializeComponent(); orders new ListOrder(){ new Order(10295), new Order(10296), new Order(10297) }; teOrder.DataBindings.Add(new Binding(EditValue, orders, ID)); dataNavigator1.DataSource orders; orderItems new ListItem() { new Item(){ ID 0, ItemName Butter Cake, Price 56.99 }, new Item(){ ID 1, ItemName Chocolate Pie, Price 89.99}, new Item(){ ID 2, ItemName Frozen Cookie Dough, Price 54.99}, new Item(){ ID 3, ItemName Truffie Cake, Price 59.99 }, new Item(){ ID 4, ItemName Original Apple Pie, Price 59.99 } }; lookupOrderItems.Properties.DataSource orderItems; lookupOrderItems.Properties.DisplayMember ItemName; lookupOrderItems.Properties.ValueMember ID; lookupOrderItems.Properties.EditValueType LookUpEditValueType.ValueList; lookupOrderItems.DataBindings.Add(new Binding(Editvalue, orders, Items)); } } public class Order { int id; public Order(int id) { this.id id; Items new HashSetint(); } [Display(ShortName Order ID)] public int ID { get { return id; } } public HashSetint Items { get; private set; } } public class Item { public int ID { get; set; } public string ItemName { get; set; } public double Price { get; set; } }有条件的选择使用此选项您可以阻止用户根据特定条件选择项目处理SelectionChanging事件并将e.Cancel参数设置为true来取消项目选择。using DevExpress.XtraEditors.Controls; public partial class Form1 : XtraForm { ListProductB products; public Form1() { InitializeComponent(); //... lookUpEdit1.Properties.SelectionChanging Properties_SelectionChanging; } private void Properties_SelectionChanging(object sender, PopupSelectionChangingEventArgs e) { e.Cancel products[e.RecordIndex].InStock 0; } }重要提示WinForms LookUpEdit控件可以选择多个项目GridLookUpEdit、TreeListLookUpEdit和SearchLookUpEdit控件不支持此功能。

相关新闻

Kronos金融大模型:如何用AI语言模型破解K线密码,实现精准市场预测

Kronos金融大模型:如何用AI语言模型破解K线密码,实现精准市场预测

Kronos金融大模型:如何用AI语言模型破解K线密码,实现精准市场预测 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos 在金融市场中&am…

2026/8/8 17:43:22 阅读更多 →
NemotronLabs-VoiceChat-11B-mlx-bf16核心组件揭秘:从语言主干到音频编解码器的完整架构

NemotronLabs-VoiceChat-11B-mlx-bf16核心组件揭秘:从语言主干到音频编解码器的完整架构

LegacyUpdate架构设计:跨Windows版本兼容性实现的10个关键技术点 【免费下载链接】LegacyUpdate Fix Windows Update on Windows XP, Vista, Server 2008, 2003, and 2000 项目地址: https://gitcode.com/gh_mirrors/le/LegacyUpdate LegacyUpdate是一个专门…

2026/8/8 17:43:22 阅读更多 →
5分钟解锁小米手表个性化表盘:免费开源工具Mi-Create完整指南

5分钟解锁小米手表个性化表盘:免费开源工具Mi-Create完整指南

5分钟解锁小米手表个性化表盘:免费开源工具Mi-Create完整指南 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 厌倦了千篇一律的小米手表默认表盘&a…

2026/8/8 17:43:22 阅读更多 →

最新新闻

5分钟快速上手:使用Workstation.UaClient构建现代化工业通信应用

5分钟快速上手:使用Workstation.UaClient构建现代化工业通信应用

5分钟快速上手:使用Workstation.UaClient构建现代化工业通信应用 【免费下载链接】opc-ua-client Visualize and control your enterprise using OPC Unified Architecture (OPC UA) and Visual Studio. 项目地址: https://gitcode.com/gh_mirrors/op/opc-ua-clie…

2026/8/8 18:40:49 阅读更多 →
Gemma4-26B-A4B去审查模型终极指南:如何实现零拒绝率突破与高效部署

Gemma4-26B-A4B去审查模型终极指南:如何实现零拒绝率突破与高效部署

Gemma4-26B-A4B去审查模型终极指南:如何实现零拒绝率突破与高效部署 【免费下载链接】Gemma4-26B-A4B-Uncensored-HauhauCS-Balanced 项目地址: https://ai.gitcode.com/hf_mirrors/HauhauCS/Gemma4-26B-A4B-Uncensored-HauhauCS-Balanced Gemma4-26B-A4B-U…

2026/8/8 18:40:49 阅读更多 →
Queues.IO:消息队列技术全景图谱与架构决策指南

Queues.IO:消息队列技术全景图谱与架构决策指南

Queues.IO:消息队列技术全景图谱与架构决策指南 【免费下载链接】queues.io Queues, all of them. 项目地址: https://gitcode.com/gh_mirrors/qu/queues.io 在当今分布式系统和微服务架构盛行的时代,消息队列已成为现代应用架构中不可或缺的核心…

2026/8/8 18:40:49 阅读更多 →
从训练到部署:DeepVAC.cast模块实现PyTorch模型多框架转换

从训练到部署:DeepVAC.cast模块实现PyTorch模型多框架转换

Spring Cloud Kubernetes 高级特性终极指南:多命名空间、安全配置与服务网格集成 【免费下载链接】spring-cloud-kubernetes Kubernetes integration with Spring Cloud Discovery Client, Configuration, etc... 项目地址: https://gitcode.com/gh_mirrors/sp/sp…

2026/8/8 18:40:49 阅读更多 →
不知道数据总量也能均匀抽样:蓄水池算法辟谣

不知道数据总量也能均匀抽样:蓄水池算法辟谣

流式日志长度未知时,先统计总量再随机下标并不是唯一办法。本文用反直觉概率推导蓄水池抽样:第 i 个元素以 k/i 的概率进入容量 k 的样本,并随机替换旧元素;Python 完整代码使用可注入随机源,验证确定性输出、样本大小…

2026/8/8 18:40:49 阅读更多 →
如何配置Windows远程桌面多用户连接:完整实用指南

如何配置Windows远程桌面多用户连接:完整实用指南

如何配置Windows远程桌面多用户连接:完整实用指南 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否遇到过Windows系统更新后远程桌面突然无法工作的困扰&a…

2026/8/8 18:39:48 阅读更多 →

日新闻

AI多智能体时代来临,读懂MCP与A2A架构,抢占企业数字化新风口

AI多智能体时代来临,读懂MCP与A2A架构,抢占企业数字化新风口

当下AI应用飞速普及,无数企业下场搭建智能体系统,可落地阶段难题接踵而至:上下文无限堆积频繁爆栈、AI工具调用准确率低下、Token成本居高不下、企业数据权限混乱暗藏安全隐患……很多团队卡在架构搭建环节,空有前沿技术概念&…

2026/8/8 0:00:07 阅读更多 →
PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码

PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码

PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码 【免费下载链接】php-qrcode A PHP QR Code generator and reader with a user-friendly API. 项目地址: https://gitcode.com/gh_mirrors/ph/php-qrcode 在当今数字时代,二维码已…

2026/8/8 0:00:08 阅读更多 →
UniApp微信小程序隐私保护组件开发:从原理到实战

UniApp微信小程序隐私保护组件开发:从原理到实战

1. 项目缘起:为什么我们需要一个隐私保护通用组件?最近在维护一个基于uniapp开发的微信小程序矩阵时,我遇到了一个非常棘手的问题。随着平台对用户隐私保护的要求越来越严格,几乎每一个新版本发布,或者在某些特定机型&…

2026/8/8 0:00:08 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/8 17:02:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/8 8:58:26 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/7 23:24:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/8 17:02:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/7 23:54:54 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/8 17:02:44 阅读更多 →