listview数据绑定 有没有人知道Listview数据绑定该怎么做 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace NClay.Windows{ public delegate void EventDataListItemHandler<T>(object source,T e); public abstract class DataListBase<T> { public event EventDataListItemHandler<T> ItemClick; public event EventDataListItemHandler<T> ItemDoubleClick; public event EventDataListItemHandler<T> ItemDataBound; public DataListBase(ListView view) { mView = view; Init(); } public DataListBase(ListView view, EventDataListItemHandler<T> click, EventDataListItemHandler<T> dbclick, EventDataListItemHandler<T> bound) { mView = view; ItemClick += click; ItemDoubleClick += dbclick; ItemDataBound += bound; Init(); } private void Init() { mView.MouseDown += new MouseEventHandler(view_mousedown); mView.MouseClick += new MouseEventHandler(view_mouseclick); mView.MouseDoubleClick += new MouseEventHandler(view_mousedbclick); mView.SelectedIndexChanged += new EventHandler(view_selectchange); mView.Columns.Clear(); foreach (ColumnHeader item in Columns) { mView.Columns.Add(item); } } private ListView mView; private ListViewItem mSelectItem; protected abstract ListView.ColumnHeaderCollection Columns { get; } protected abstract ListViewItem CreateItem(T e); private IList<T> mDataSource; public IList<T> DataSource { get { return mDataSource; } set { mDataSource = value; OnDataBind(); } } private void OnDataBind() { mView.Items.Clear(); ListViewItem vitem; foreach (T item in DataSource) { vitem = CreateItem(item); mView.Items.Add(vitem); mView.Tag = item; OnDataBound(item); } } protected virtual void OnItemClick(T e) { if (ItemClick != null) ItemClick(this, e); } protected virtual void OnItemDoubleClick(T e) { if (ItemDoubleClick != null) ItemDoubleClick(this, e); } protected virtual void OnDataBound(T e) { if (ItemDataBound != null) ItemDataBound(this, e); } private void view_mousedown(object source, MouseEventArgs e) { mSelectItem = mView.GetItemAt(e.X, e.Y); } private void view_mouseclick(object source, MouseEventArgs e) { if (mSelectItem != null) OnItemClick((T)mSelectItem.Tag); } private void view_mousedbclick(object source, MouseEventArgs e) { if (mSelectItem != null) OnItemDoubleClick((T)mSelectItem.Tag); } private void view_selectchange(object source, EventArgs e) { SelectItems.Clear(); foreach (ListViewItem item in mView.SelectedItems) { SelectItems.Add((T)item.Tag); } } public IList<T> SelectItems { get { return mSelectItems; } } private IList<T> mSelectItems = new List<T>(); }} http://www.4oa.com/Article/html/6/34/497/2005/18068.html private void button1_Click(object sender, EventArgs e) { listView1.Items.Clear(); listView1.Columns.Clear(); SqlConnection con = new SqlConnection("server=.;database=pubs;user id=sa;password=123"); con.Open(); DataSet dst = new DataSet(); SqlCommand cmd =new SqlCommand ("select title_id,type from titles",con ); SqlDataAdapter dap = new SqlDataAdapter(cmd); dap.Fill(dst); con.Close(); this.listView1.Columns.Add("ID编号", 80, HorizontalAlignment.Center); this.listView1.Columns.Add("类型", 80, HorizontalAlignment.Center);//增加列标题 listView1.View = View.Details; listView1.GridLines = true;//显示网格线。。 string[] str = new string[2]; foreach (DataRow row in dst.Tables[0].Rows) { str[0] = row["title_id"].ToString(); str[1] = row["type"].ToString(); ListViewItem item = new ListViewItem(str, 0); listView1.Items.Add(item); } } 4楼这个不能叫绑定。LISTVIEW的绑定麻烦,加载大数据量数据又慢。如果没有硬性规定,用DATAGRIDVIEW替代他显示数据。 那请问什么样叫绑定呢?别人就是要用listview,提什么DATAGRIDVIEW呢?不解决实际问题的就别在这插嘴! ListView 没有内置绑定功能的支持只有一项一项的添加,如 4楼 WebClient上传文件异常 重绘ComboBox C# Gridview问题 FlashVars 如何在c#中实现数据结构中的线性存储。 跪求Winform项目打包的具体步骤,包括数据库打包和水晶报表 如何用移位的方法把十进制数转化为十六进制 在 datagrid里面编辑,后台是acess数据库,我用OleDbDataAdapter等做保存,没成功 InvalidArgument=“-1”的值对于“index”无效 如何在Winform控制嵌入的浏览器对web构件的显示 虚函数的问题 gridview上右键单击可以实现下拉菜单功能吗?用c#实现
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace NClay.Windows
{
public delegate void EventDataListItemHandler<T>(object source,T e);
public abstract class DataListBase<T>
{
public event EventDataListItemHandler<T> ItemClick;
public event EventDataListItemHandler<T> ItemDoubleClick;
public event EventDataListItemHandler<T> ItemDataBound;
public DataListBase(ListView view)
{
mView = view;
Init();
}
public DataListBase(ListView view, EventDataListItemHandler<T> click,
EventDataListItemHandler<T> dbclick, EventDataListItemHandler<T> bound)
{
mView = view;
ItemClick += click;
ItemDoubleClick += dbclick;
ItemDataBound += bound;
Init();
}
private void Init()
{
mView.MouseDown += new MouseEventHandler(view_mousedown);
mView.MouseClick += new MouseEventHandler(view_mouseclick);
mView.MouseDoubleClick += new MouseEventHandler(view_mousedbclick);
mView.SelectedIndexChanged += new EventHandler(view_selectchange);
mView.Columns.Clear();
foreach (ColumnHeader item in Columns)
{
mView.Columns.Add(item);
}
}
private ListView mView;
private ListViewItem mSelectItem;
protected abstract ListView.ColumnHeaderCollection Columns
{
get;
}
protected abstract ListViewItem CreateItem(T e);
private IList<T> mDataSource;
public IList<T> DataSource
{
get
{
return mDataSource;
}
set
{
mDataSource = value;
OnDataBind();
}
}
private void OnDataBind()
{
mView.Items.Clear();
ListViewItem vitem;
foreach (T item in DataSource)
{
vitem = CreateItem(item);
mView.Items.Add(vitem);
mView.Tag = item;
OnDataBound(item);
}
}
protected virtual void OnItemClick(T e)
{
if (ItemClick != null)
ItemClick(this, e);
}
protected virtual void OnItemDoubleClick(T e)
{
if (ItemDoubleClick != null)
ItemDoubleClick(this, e);
}
protected virtual void OnDataBound(T e)
{
if (ItemDataBound != null)
ItemDataBound(this, e);
}
private void view_mousedown(object source, MouseEventArgs e)
{
mSelectItem = mView.GetItemAt(e.X, e.Y);
}
private void view_mouseclick(object source, MouseEventArgs e)
{
if (mSelectItem != null)
OnItemClick((T)mSelectItem.Tag);
}
private void view_mousedbclick(object source, MouseEventArgs e)
{
if (mSelectItem != null)
OnItemDoubleClick((T)mSelectItem.Tag);
}
private void view_selectchange(object source, EventArgs e)
{
SelectItems.Clear();
foreach (ListViewItem item in mView.SelectedItems)
{
SelectItems.Add((T)item.Tag);
}
}
public IList<T> SelectItems
{
get
{
return mSelectItems;
}
}
private IList<T> mSelectItems = new List<T>();
}
}
{
listView1.Items.Clear();
listView1.Columns.Clear();
SqlConnection con = new SqlConnection("server=.;database=pubs;user id=sa;password=123");
con.Open();
DataSet dst = new DataSet();
SqlCommand cmd =new SqlCommand ("select title_id,type from titles",con );
SqlDataAdapter dap = new SqlDataAdapter(cmd);
dap.Fill(dst);
con.Close();
this.listView1.Columns.Add("ID编号", 80, HorizontalAlignment.Center);
this.listView1.Columns.Add("类型", 80, HorizontalAlignment.Center);//增加列标题
listView1.View = View.Details;
listView1.GridLines = true;//显示网格线。。
string[] str = new string[2];
foreach (DataRow row in dst.Tables[0].Rows)
{
str[0] = row["title_id"].ToString();
str[1] = row["type"].ToString();
ListViewItem item = new ListViewItem(str, 0);
listView1.Items.Add(item);
}
}
不解决实际问题的就别在这插嘴!