Dev控件 ComboBoxEdit 如何绑定键和值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dev控件 ComboBoxEdit 如何绑定键和值相关的知识,希望对你有一定的参考价值。
显示的是指 传递的是键 怎么去实现(无数多列,不能单个转)
参考技术A DEV控件中的ComboBoxEdit控件绑定数据库中的数据,主要的绑定方式下拉框中显示Name,但是在选中使用时,使用的是对应的ID。追问我是想绑定方式下拉框中显示Name,而传递到数据库显示的是别的东西
就像ComboBox的valueMember和displayMember绑定的效果一样
这样如何去绑定
DevExpress ComboBoxEdit 数据源
【中文标题】DevExpress ComboBoxEdit 数据源【英文标题】:DevExpress ComboBoxEdit datasource 【发布时间】:2012-09-13 16:54:04 【问题描述】:我正在使用 DevExpress ComboBoxEdit,我需要将列表绑定到它的数据源。但是正如我所见,没有方法可以添加数据源来控制,所以我像添加了每个项目来控制一样
foreach (var item in list)
comboBoxEdit1.Properties.Items.Add(item);
它有用,但如果有很多数据,它会很慢。 有没有办法可以直接绑定列表来控制?
【问题讨论】:
【参考方案1】:没有办法将 ComboBoxEdit 直接绑定到数据源,因为 ComboBoxEdit 设计为在您需要一组简单的预定义值时使用。当您需要使用数据源时,请使用LookUpEdit。 您可以使用ComboBoxItemCollection.BeginUpdate 和ComboBoxItemCollection.EndUpdate 方法来防止在更改项目集合时过度更新:
ComboBoxItemCollection itemsCollection = comboBoxEdit1.Properties.Items;
itemsCollection.BeginUpdate();
try
foreach (var item in list)
itemsCollection.Add(item);
finally
itemsCollection.EndUpdate();
【讨论】:
【参考方案2】:这是另一种使用 linq one-liner 将项目整体添加到组合框的方法:
comboBoxEdit1.Properties.Items.AddRange(newItems.Select(x => x.SomeStringPropertyHere as object).ToArray());
.AddRange() 方法负责在内部调用 BeginUpdate()/EndUpdate()。
【讨论】:
很好,我选择了:MyCollection.ForEach(i => this.comboBox.Properties.Items.Add(i)); 恐怕对每个项目调用 .Add() 方法会导致 BeginUpdate()/EndUpdate() 被调用 N 次(其中 N 是集合中的项目数)与使用 AddRange() 时一样。由于上述重复调用,垃圾邮件 BeginUpdate()/EndUpdate() * N 对“大型”集合的性能产生负面影响。只是我的 2c。【参考方案3】:另一种方法是通过扩展方法:
public static ComboBoxEdit AddItemsToCombo(this ComboBoxEdit combo, IEnumerable<object> items)
items.ForEach(i => combo.Properties.Items.Add(i));
return combo;
【讨论】:
以上是关于Dev控件 ComboBoxEdit 如何绑定键和值的主要内容,如果未能解决你的问题,请参考以下文章
C#中有种下拉框(combobox),还有中控件,我是在网上下的下拉框(comboboxEdit),我没找到他的下拉属性
comboboxedit控件 SelectedIndexChanged事件
如何实现DevExpress的comboBoxEdit控件和comboBox控件的DropDownStyle属性一样。
DevExpress:下拉框绑定数据源 (ComboBoxEdit,LookUpEdit) 出现Editvalue is null 为啥 ,求代码