关于ComboBoxEdit如何绑定实体集问题
本帖最后由 rzt_tao 于 2017-2-27 10:39 编辑DevExpress 的ComboBoxEdit的Item虽然是Object类型,但是绑定实体集的时候,显示的Item是类的名称,这样并不是我们想要的,我们渴望的是能够看到指定那个属性字段,SelectItem的时候返回的是一个实体,
大家想一想为什么我们看到的是下拉类别是类的名称?因为这个类的ToString方法,知道这个切入点就好办了,我们就从重写类的ToString方法入手。
定义一个Student类,重写其ToString方法:
class student
{
public string name { get; set; }
public int id { get; set; }
/// <summary>
/// 重写ToString的方法
/// </summary>
/// <returns></returns>
public override string ToString()
{
return name;
}
当然,大伙更喜欢能够随时指定某个属性字段作为其显示的Item,这个很简单,定义一个构造函数,利用反射就可以了。
**** Hidden Message *****
解决关键核心问题,下面就正式使用。
**** Hidden Message *****
测试结果:
当然有些人觉得这样有点麻烦,其实DevExpress提供了其他的控件操作,LookUpEdit和GridLookUpEdit,这个两个控件都提供了直接绑定数据源的属性设置,
也允许设置指定列为显示字段和实际值字段,这样就轻松多了。
大致设置如下(gridlookUpedit类似具体可以网上一搜一大把):
lookUpEdit.Properties.DataSource=ss;
lookUpEdit.Properties.ValueMember="id";
lookUpEdit.Properties.DisplayMember="name";
设置显示列大致如下:
lookUpEdit设置:
gridLookUpEdit设置(其实就是内嵌了一个GridControl的控件,设置跟设置GridView方式一样的)
看看有啥好办法 只能先回复了
精通两年以上多人在线开的扩展开发验标准库的使用能完成相应
看看有啥好办法 学习学习 不知道为什么微软自带的是有这个功能的,在DEV怎么就没了呢 不是继承的吗 775253959 发表于 2017-4-7 16:54
不知道为什么微软自带的是有这个功能的,在DEV怎么就没了呢 不是继承的吗
自己看看基类就知道不是继承,Devexpress自己开发的一套控件。 看看,正用到 {:2_25:}一直用lookup来写,。。。牛逼 {:2_25:}{:2_25:}{:2_25:}{:2_25:} 正好需要看看 厉害了我的涛哥 谢谢分享 要不要这样啊 这个用的非常频繁,学习了,感谢。 学习一下 谢谢楼主分享 学习了,感谢分享~~~~~~~~ 等我看了隐藏内容再给你回复 我这里说一种其他方法啊!
imageComboBoxEditAccEmpId.Properties.Items.Add(new ImageComboBoxItem(drAccountType["NAME"].ToString(), drAccountType["ID"].ToString(), -1));NAME,ID就是方法传过来的datetable的字段。其中ID是绑定的字段,NAME是下拉显示的字段。这样就会出现一个问题,下拉,我字符串拼接 ID,NAME 。但显示我只想要他显示NAME。怎么解决呢?我在imagecombox上放了一个textedit写了个方法就解决了。#region imageComboBoxEditAccEmpId 值改变事件 private void imageComboBoxEditAccEmpId_EditValueChanged(object sender, EventArgs e) { string str = imageComboBoxEditAccEmpId.Text.ToString(); if (str != "" && str.Contains(",")) { string[] sArray = str.Split(','); textEditShow.Text = sArray; } }
#endregion如图所示
谢谢分享。 谢谢分享~~~~~~ 非常需要的,谢谢 学习学习 THANKS FOR SHARE 看一下了 yys,非常感谢! 这个学习一下 想学习学习,最近也遇到了问题,希望是我需要的 看看如何实现