返回信息流如题,我在网上找到了好多版本的代码,都不好用。另外需要说明一点,我的datagrid绑定的数据是arraylist类型的,好像网上的那些绑定数据类型基本都是数据库。所以我猜这也可能是我用着不好使的原因。
以下是我的相关代码:(其中Listdata是datagrid,LocationList是arraylist,x1是LocationClass)
this.LocationList.Add(x1);
this.Listdata.DataSource = this.LocationList;
DataGridTableStyle myTableStyle = new DataGridTableStyle();
myTableStyle.MappingName = "LocationList";
DataGridColumnStyle col1 = new DataGridTextBoxColumn();
col1.MappingName = "id";
col1.HeaderText = "id";
col1.Width = 300;
DataGridColumnStyle col2 = new DataGridTextBoxColumn();
col2.MappingName = "location";
col2.HeaderText = "location";
col2.Width = 150;
myTableStyle.GridColumnStyles.Add(col1);
myTableStyle.GridColumnStyles.Add(col2);
this.Listdata.TableStyles.Clear();
this.Listdata.TableStyles.Add(myTableStyle);
this.Listdata.TableStyles[0].MappingName = "LocationList";
////////////////////以下是locationclass的结构///////////////////////////////////
enum APtype
{
ReferenceAP,
UserAP,
SelfAP
}
enum APstate
{
Normal,
Urgent
}
class LocationClass
{
// public LocationClass(int m_id, Point m_location, APtype m_type, APstate m_state)
// {
// }
public int id //序号
{
get;
set;
}
public Point location //坐标
{
get;
set;
}
public APtype type //节点类型
{
get;
set;
}
public APstate state //目前状态
{
get;
set;
}
}
求各位大牛给解决一下!谢谢啦!
这是一条镜像帖。来源:北邮人论坛 / dot-net / #2687同步于 2011/3/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
【已解决】C#中datagrid控件在winCE中怎样设置列宽
handspeaker
2011/3/14镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
好吧,自问自答了……
正解:
仔细查看了msdn对datagrid里面datasource的解释之后,发现了这么一行:
此外,ArrayList 在绑定时必须包含项目。空 ArrayList 会导致空网格。此外,ArrayList 中的对象必须包含公共属性。当绑定到 ArrayList 时,请将 DataGridTableStyle 的 MappingName 设置为“ArrayList”(类型名)。
所以在自定义DataGridTableStyle 的时候切记一定要将MappingName 设置为“ArrayList”!!!!!!
要不然什么效果都没有,此外GridColumnStyles一定要和arraylist里面项目的公共属性一致,才会正确显示
如果还有同学对wince中datagrid如何将arraylist作为数据源有疑问,可以站内我