VS自带的ComboBox在设置数据源的时候有两个属性ValueMember和DisplayMember可以进行设置,而DevExpress中的ComboBoxEdit控件如果要设置同样属性是在哪里进行设置的,有用过DevExpress控件库的朋友告知下,谢谢~~

解决方案 »

  1.   

    你是不是要通过ComboBoxEdit来绑定数据?
    如果是先绑定数据,干脆,不要用ComboBox那套。你可以换个想法来绑定数据啊。
    ComboBoxEdit有个属性Properties.Items.Add(),你把你需要绑定的数据加载Add()里面就可以了。
    如果你真的想用ComboBox那套来绑定数据,对应的是我找找,忘记了。
      

  2.   

    comboBoxEdit1.DataBindings.Add("propertyName", DataTable, "dataMember");
      

  3.   

    to ly210501076:
       我需要用ComboBox的那套来进行数据绑定,因为显示的值是显示的值,我选择后获取的值是显示的值所对应的数据,就比如我SQL语句查询出来的有两列(select id,value from table),控件显示的是value,但是我选择某一项的时候,获取的是value对应的id,所以是要ComboBox控件的那种设置方式。
      

  4.   

    对了ComboBoxEdit不能通过DataBindings的方法来实现数据的绑定,因为ComboBoxEdit不支持这种方式的绑定数据,关于ComboBoxEdit绑定数据老外很多人也给出了方法,总结一下,大都是通过
    ComboBoxEdit.Properties.Items.Add(object objData)的方法来绑定数据的。
    这种方式绑定数据的话,你只需要把objData取出,如果是DataTable类型可以通过            foreach (DataRow dr in dt.Rows)
                {
                    cmbTest.Properties.Items.Add(dr);
                }如果要是的绑定的数据显示某个字段,你可以对dr中实现Override ToString()的重载。
      

  5.   


    其实dev也有这两个属性,只不过好像不支持智能感应, 你直接写出来,编译是可以通过的
      

  6.   

    它是绑定对象的,也就是楼上所说,其实它显示的是它的ToString()内容。
      

  7.   

    to showjancn:
       你的意思是不是说如果我要想像ComboBox一样设置那种键值对的方式,需要我自己去定义一个类似ListItem那样的类,然后实例化对象去add到控件里?
      

  8.   

    向ComboBoxEdit中添加button的实例也是一种办法!
    例如一下: this.comboBoxEdit1.EditValue = "Extended Price";
                this.comboBoxEdit1.Location = new System.Drawing.Point(138, 10);
                this.comboBoxEdit1.Name = "comboBoxEdit1";
                this.comboBoxEdit1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
                new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
                this.comboBoxEdit1.Properties.Items.AddRange(new object[] {
                "Extended Price",
                "Extended Unit Price",
                "Full Price"});
                this.comboBoxEdit1.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
                this.comboBoxEdit1.Size = new System.Drawing.Size(197, 22);
                this.comboBoxEdit1.TabIndex = 3;
      

  9.   

    你重新整理一下思绪,你看你说你的数据是通过(select id,value from table)查询出来,这样数据可能有很多条数据对吧。
    你可以建一个TableEntity实体类来存放一条记录,而TableEntityList则是TableEntity的集合;    public class TableEntity
        {
            private int _Id = 0;
            private string _Value = "";        public int Id
            {
                get { return this._Id; }
                set { this._Id = value; }
            }
            public string Value
            {
                get { return this._Value; }
                set { this._Value = value; }
            }        public override string ToString()
            {
                return this.Value;
            }
        }
        public class TableEntityList : ICollection
        {
            List<TableEntity> tbEntityList = new List<TableEntity>();
            //......
        }这样在给ComboBoxEdit绑定数据时,就通过            foreach (TableEntity tbEntity in tbEntityList)
                {
                    ComboBoxEdit.Properties.Items.Add(tbEntity);
                }这样在你通过ComboBoxEdit的SelectedIndexChanged事件获取SelectedItem可以转化成TableEntity实体,这样就可以得到你想要的Id这个属性了。
      

  10.   

    看了半天貌似是重写ToString()是最靠谱的额,但是这样也太不方便了,真的是不可以的么,到底怎么办