在VS中经常使用ComboBox或ListBox控件的朋友都知道,绑定数据的时候,一般只能绑定Text值,而没有Value值,今天介绍如何将2个值绑定到ComboBox或ListBox控件中的某一项。
首先建立一个类:
using System;
using System.Collections.Generic;
using System.Text;
namespace List
{
public class cls_List
{
/// <summary>
/// List的项
/// </summary>
public class ListItem : System.Object
{
private string m_sValue = string.Empty;
private string m_sText = string.Empty;
/// <summary>
/// 值
/// </summary>
public string Value
{
get { return this.m_sValue; }
}
/// <summary>
/// 显示的文本
/// </summary>
public string Text
{
get { return this.m_sText; }
}
public ListItem(string value, string text)
{
this.m_sValue = value;
this.m_sText = text;
}
public override string ToString()
{
return this.m_sText;
}
public override bool Equals(System.Object obj)
{
if (this.GetType().Equals(obj.GetType()))
{
ListItem that = (ListItem)obj;
return (this.m_sText.Equals(that.Value));
}
return false;
}
public override int GetHashCode()
{
return this.m_sValue.GetHashCode(); ;
}
}
}
}
【调用方法】:
以ListBox控件为例,控件名称为:listBox1 ;ComboBox控件使用与ListBox基本一样
DataTable DsLogin = XXXXXXXXXXXX; //查询出的结果集
List<cls_List.ListItem> listItems = new List<cls_List.ListItem>();
for (int i = 0; i <DsLogin.Rows.Count; i++)
{
listItems.Add(new cls_List.ListItem(DsLogin.Rows[0][0].ToString(), DsLogin.Rows[0][1].ToString()));
}
listBox1.DataSource = listItems; //绑定数据
listBox1.DisplayMember = "Text"; //显示
listBox1.ValueMember = "Value"; //值
首先建立一个类:
using System;
using System.Collections.Generic;
using System.Text;
namespace List
{
public class cls_List
{
/// <summary>
/// List的项
/// </summary>
public class ListItem : System.Object
{
private string m_sValue = string.Empty;
private string m_sText = string.Empty;
/// <summary>
/// 值
/// </summary>
public string Value
{
get { return this.m_sValue; }
}
/// <summary>
/// 显示的文本
/// </summary>
public string Text
{
get { return this.m_sText; }
}
public ListItem(string value, string text)
{
this.m_sValue = value;
this.m_sText = text;
}
public override string ToString()
{
return this.m_sText;
}
public override bool Equals(System.Object obj)
{
if (this.GetType().Equals(obj.GetType()))
{
ListItem that = (ListItem)obj;
return (this.m_sText.Equals(that.Value));
}
return false;
}
public override int GetHashCode()
{
return this.m_sValue.GetHashCode(); ;
}
}
}
}
【调用方法】:
以ListBox控件为例,控件名称为:listBox1 ;ComboBox控件使用与ListBox基本一样
DataTable DsLogin = XXXXXXXXXXXX; //查询出的结果集
List<cls_List.ListItem> listItems = new List<cls_List.ListItem>();
for (int i = 0; i <DsLogin.Rows.Count; i++)
{
listItems.Add(new cls_List.ListItem(DsLogin.Rows[0][0].ToString(), DsLogin.Rows[0][1].ToString()));
}
listBox1.DataSource = listItems; //绑定数据
listBox1.DisplayMember = "Text"; //显示
listBox1.ValueMember = "Value"; //值