说明一下:comboBox1已经绑定了一个数据源,使comboBox1显示自己想要的字段,并且增加了一个gridcontrol,而gridview中只有id,想要点击gridview的行,获取id,comboBox1再显示对应的名称。
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraGrid.Views.BandedGrid;
using DevExpress.XtraGrid.Views.Base;
using System.Linq;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraGrid.Views.Grid;
namespace test
{
public partial class Form3 : Form
{
GridView gridview = new GridView();
public Form3()
{
InitializeComponent();
InitGrid();
}
private void InitGrid()
{
//模拟几个数据
List<ClassNo> listDataSource2 = new List<ClassNo>();
listDataSource2.Add (new ClassNo (1,1,"计算机班01","备注01"));
listDataSource2.Add(new ClassNo(2, 2, "计算机班02", "备注02"));
listDataSource2.Add(new ClassNo(3, 3, "计算机班03", "备注03"));
listDataSource2.Add(new ClassNo(4, 1, "计算机班 ", "备注01"));
//绑定数据源并显示
comboBox1.DataSource = listDataSource2;
comboBox1.DisplayMember = "Calssno"; //使显示为Calssno字段!
this.comboBox1.ValueMember = "ID"; //这个是关键~
}
//一下可以按照大家实际的情况来设定。我在这样讲gridview1绑定了另外一个数据源,而数据源中有ClassNOId这个字段。这边我就不写了。
private void gridview1_Click(object sender, EventArgs e)
{
int numnber = gridview1.FocusedRowHandle;
this.comboBox1.SelectedValue = Int32.Parse(gridview1.GetRowCellValue(numnber, "ClassNOId").ToString ());
}
#region 运行时绑定到实现Ilist接口的数据源
public class ClassNo
{
int id,recordId;
string remark, calssno;
public ClassNo(int id, int recordId, string calssno, string remark)
{
this.id = id;
this.recordId =recordId ;
this.calssno = calssno;
this.remark = remark;
}
public int ID { get { return id; } }
public int RecordId
{
get { return recordId; }
set { recordId = value; }
}
public string Remark
{
get { return remark; }
set { remark = value; }
}
public string Calssno
{
get { return calssno ; }
set { calssno = value; }
}
}
#endregion