一种得到数据源方法的思考
今天看了listview和listbox两个控件的视频教程,其中说了一种绑定数据源的方法,感觉不错,所以贴出来与大家一起分想
比如先在工程里建一个Product类:(在此类中可以连接数据库)
此类代码如下 :
using System;
using System.Collections.Generic;
using System.Text;
namespace winform1
{
class Product//创建一个Product类
{
public Product(stringcode, string name)
{
_code = code;
_name = name;
}public Product(string code, string name, int score)//重载构造函数
{
_code = code;
_name = name;
_score = score;
}private string_code;
public stringCode
{
get { return _code;
}
set { _code = value;
}
}private string _name;
public string Name
{
get { return _name;
}
set { _name = value;
}
}private int _score;
public int Score
{
get { return _score;
}
set { _score = value;
}}public override string ToString()//重写tostring()方法,以便按照想要的格式输出return _code + "-" + _name;
}public static IList GetAllProduct()
{
IList all = new List();
all.Add(new Product("001", "苹果"));
all.Add(new Product("002", "橡胶"));
all.Add(new Product("003", "花生"));
return all;
}public static IList GetAllRichProduct()//创建两个静态方法
{
IList all = new List();
all.Add(new Product("001", "苹果",100));
all.Add(new Product("002", "橡胶",200));
all.Add(new Product("003", "花生",300));
//这里可以得到数据库中的数据
return all;
}}
}
然后就可以在其它文件中调用此类了:
比如以下是一个以Product为数据源来填充listview内容的方法:
private void button2_Click(object sender, EventArgs e)
{
this.listView1.Items.Clear();
//首先清除原有所有记录
【一种得到数据源方法的思考】IList all = Product.GetAllRichProduct(); //调用方法,返回all
foreach (Product prod in all)//遍历all中所有记录
{
string[] Str = new string[3]; //得到此记录相应字段的值
Str[0] = prod.Code;
Str[1] = prod.Name;
Str[2] = prod.Score.ToString();
ListViewItem item = new ListViewItem(Str, 0);
this.listView1.Items.Add(item); //填充
}
}
另外,此数据源还可以用来作为listBox的数据源:
比如 :
private void button1_Click(object sender, EventArgs e)//此事件中是向listbox填充数据
{
IList all = Product.GetAllProduct();
foreach (Product prod in all)
{
this.comboBox1.Items.Add(prod);
//填充comboBox控件内容
}
}
//以下方法是选 中listbox某行后得到相应字段值:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show(this.comboBox1.SelectedIndex.ToString());
//得到索引Product prod = (Product)this.comboBox1.SelectedItem;
//将选中行强转化为product类型string myProd = prod.Name;
//得到Name段的值 ,还可以得到其它的字段的值
MessageBox.Show(myProd.ToString());
}
推荐阅读
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 午门传说
- 有一种爱叫那一滴眼泪
- 有一种成功,叫“我有时间陪家人”
- 有一种美,叫难以开口!
- 低调做人是一种智慧
- 有一种情
- 安意如(有一种本事把残缺活成了美)
- 极简主义|极简主义 简记
- 在失去中,看见得到的部分!