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 为啥 ,求代码

DevExpress的下拉框控件ComboxBoxEdit怎样绑定键值对选项

Dev控件的下拉框控件设置默认选中项