一种得到数据源方法的思考

今天看了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()); }

    推荐阅读