在 Pocket PC 中 DataGrid 省去了很多功能!
列如不能在 DataGrid 中添加控件
下面方法用 DataTable 作为 DataGrid 的数据源:
Code
private void DataGridSource()
{
LogDal logdal = new LogDal();
List<LogEntity> logs = logdal.select();
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(Int32));
dt.Columns.Add("context", typeof(string));
dt.Columns.Add("logTime", typeof(DateTime));
foreach (LogEntity logentity in logs)
{
DataRow dr = dt.NewRow();
dr["id"] = logentity.Id;
dr["context"] = logentity.Context;
dr["logTime"] = logentity.LogTime;
dt.Rows.Add(dr);
}
ds.Tables.Add(dt);
this.dataGrid1.DataSource = ds.Tables[0];
}
然后可以对 DataGrid 的标题设置样式,当然这个也可以在属性管理器中进行设置。
Code
DataGridTableStyle ts = new DataGridTableStyle();
ts.MappingName = ds.Tables[0].ToString();
DataGridColumnStyle dgcsId = new DataGridTextBoxColumn();
dgcsId.MappingName = ds.Tables[0].Columns["id"].ToString();
dgcsId.HeaderText = "ID";
ts.GridColumnStyles.Add(dgcsId);
DataGridColumnStyle DgcsContext = new DataGridTextBoxColumn();
DgcsContext.MappingName = ds.Tables[0].Columns["context"].ToString();
DgcsContext.HeaderText = "内容";
ts.GridColumnStyles.Add(DgcsContext);
DataGridColumnStyle dgcsTime = new DataGridTextBoxColumn();
dgcsTime.MappingName = ds.Tables[0].Columns["logTime"].ToString();
dgcsTime.HeaderText = "时间";
ts.GridColumnStyles.Add(dgcsTime);
this.dataGrid1.TableStyles.Add(ts);