【问题标题】:DevExpress LookupEdit, Select by itemDevExpress LookupEdit,按项目选择
【发布时间】:2013-06-20 16:37:23
【问题描述】:

如何设置 DevExpress LookupEdit 的选中元素?即,给定 LookupEdit 的数据源的一个对象,根据它设置 LookupEdit 的选择。

【问题讨论】:

    标签: winforms devexpress


    【解决方案1】:

    您应该根据LookupEdit.ValueMember 属性将LookupEdit.EditValue 属性设置为您的数据源中的值。

    以下是演示此方法的示例:

    var dataSource = new List<Person> { 
        new Person(){ ID=0, Name="John", Age=27 },
        //...
        new Person(){ ID=101, Name="Mary", Age=23 },
    };
    lookupEdit1.Properties.DataSource = dataSource;
    lookupEdit1.Properties.DisplayMember = "Name";
    lookupEdit1.Properties.ValueMember = "ID";
    
    lookupEdit1.EditValue = 101; // Select Person with ID==101
    //...
    lookupEdit1.EditValue = lookupEdit1.Properties.GetDataSourceValue("ID", 1); // Select Person from second row by its ID
    

    【讨论】:

    • 谢谢@DmitryG,但我一直在关注comboBox1.SelectedItem = item; 之类的东西,而不关心对象的键。
    • @guillegr123 LookUp 不是 ComboBox,因此您应该使用键值来定位和选择 RepositoryItemLookUpEditBase.ValueMember 字段包含此键值的行...使用以下命令:lookupEdit1.EditValue = item.ID;
    【解决方案2】:

    一段时间后,我在DevExpress forums 中找到了答案。只需让ValueMember属性未赋值,将控件的EditValue属性设置为要选中的项即可。以@DmitryG 为例:

    var dataSource = new List<Person>();
    p1 = new Person(){ ID=0, Name="John", Age=27 };
    dataSource.Add(p1);
    //...
    dataSource.Add(new Person(){ ID=101, Name="Mary", Age=23 });
    lookupEdit1.Properties.DataSource = dataSource;
    lookupEdit1.Properties.DisplayMember = "Name";
    //...
    lookupEdit1.EditValue = p1;
    

    在这种情况下,它将被绑定到一个项目的引用。

    【讨论】:

      【解决方案3】:

      这里是选择第一个值索引的简单解决方案:LookUpEdit1.EditValue=TryCast(LookUpEdit1.Properties.DataSource,DataTable).Row(0).Item(0).ToString

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-11
        • 2011-04-06
        • 2011-01-13
        • 1970-01-01
        相关资源
        最近更新 更多