DataGrid控件如何绑定到ArrayList?

JamesHoffman 2005-04-20 09:50:58
我试图把DataGrid控件绑定到ArrayList,但是DataGrid没有显示ArrayList里包含的类的属性,这一点和Asp.Net不一样(以前做Asp.Net,最近改做Windows Form程序),不知道如何才能使DataGrid显示ArrayList中的类属性?如何做个性化设置。
...全文
133 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
singlepine 2005-04-20
  • 打赏
  • 举报
回复
回答很精彩,帮顶
river723 2005-04-20
  • 打赏
  • 举报
回复
先定义一个实体类:
public class Class1
{
int _id;
string _name;
bool _sex;
DateTime _birth;
public int Id
{
set{_id=value;}
get{return _id;}
}
public string Name
{
set{_name=value;}
get{return _name;}
}
public bool Sex
{
set{_sex=value;}
get{return _sex;}
}
public DateTime Birthday
{
set{_birth=value;}
get{return _birth;}
}
}


然后在一个窗体的datagrid里绑定它:
Class1 c1;
list = new ArrayList();
for(int i=1;i<6;i++)
{
c1=new Class1();
c1.Id=i;
c1.Name="name"+i.ToString();
list.Add(c1);

}


dataGrid1.SetDataBinding(list,"");
dataGrid1.ReadOnly=true;
dataGrid1.TableStyles.Clear();
DataGridTableStyle ts1= new DataGridTableStyle();
DataGridTextBoxColumn TxtCol;

ts1.MappingName = "ArrayList";
TxtCol=new DataGridTextBoxColumn();
TxtCol.MappingName="Id" ;
TxtCol.HeaderText="编号" ;
TxtCol.Width=50;
TxtCol.NullText="";
TxtCol.ReadOnly=true;
ts1.GridColumnStyles.Add(TxtCol);

TxtCol=new DataGridTextBoxColumn();
TxtCol.MappingName="Name" ;
TxtCol.HeaderText="姓名" ;
TxtCol.Width=50;
TxtCol.NullText="";
TxtCol.ReadOnly=true;
ts1.GridColumnStyles.Add(TxtCol);

DataGridBoolColumn BoolCol=new DataGridBoolColumn();
BoolCol.MappingName="Sex" ;
BoolCol.HeaderText="性别" ;
BoolCol.Width=50;
BoolCol.ReadOnly=true;
ts1.GridColumnStyles.Add(BoolCol);

ts1.MappingName = "ArrayList";
TxtCol=new DataGridTextBoxColumn();
TxtCol.MappingName="Birthday" ;
TxtCol.HeaderText="出生日期" ;
TxtCol.Width=100;
TxtCol.NullText="";
TxtCol.Format="yyyy-MM-dd";
TxtCol.ReadOnly=true;
ts1.GridColumnStyles.Add(TxtCol);
ts1.MappingName = "ArrayList";
this.dataGrid1.TableStyles.Add(ts1);
代码直接拷过去就可以用。
LoveCherry 2005-04-20
  • 打赏
  • 举报
回复
http://blog.csdn.net/lzmtw/archive/2005/04/15/349573.aspx
hamadou 2005-04-20
  • 打赏
  • 举报
回复
Public Class Class1
Private m_name As String
Private m_address As String
Public Property name() As String
Get
Return m_name
End Get
Set(ByVal Value As String)
m_name = Value
End Set
End Property
Public Property address() As String
Get
Return m_address
End Get
Set(ByVal Value As String)
m_address = Value
End Set
End Property
Public Sub New(ByVal name As String, ByVal address As String)
m_name = name
m_address = address
End Sub
End Class


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Dim p() As Class1 = {New Class1("1", "changchun"), New Class1("2", "shenyang")}
Dim p As New ArrayList()
p.Add(New Class1("1", "changchun"))
p.Add(New Class1("2", "shenyang"))
Me.DataGrid1.DataSource = p
End Sub
--------------------------
至于个性化处理,使用tablestyle
tl_pear 2005-04-20
  • 打赏
  • 举报
回复
http://blog.csdn.net/lzmtw

16,720

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧