遍历List<T>包含字典Dictionary和其他字段dataGridView绑定数据
来源:互联网 发布:json数据怎么用 编辑:程序博客网 时间:2024/05/21 04:19
以前做WinForm接触的不多字典类型而且返回在List<T>中,在dataGridView绑定的时候遇到问题,单元格显示集合并不显示数据,在窗体上放一个dataGridView,
下面是类:
public class Certification
{
Dictionary<String, String> Descrribed;
public Dictionary<String, String> Descrribed1
{
get { return Descrribed; }
set { Descrribed = value; }
}
String CertificationStatus;
public String CertificationStatus1
{
get { return CertificationStatus; }
set { CertificationStatus = value; }
}
public Certification(Dictionary<String, String> _dic, String _status)
{
this.Descrribed1 = _dic;
this.CertificationStatus1 = _status;
}
}
在窗体Load事件中加上
动态创建列名:
DataGridViewTextBoxColumn txtKey = new DataGridViewTextBoxColumn();
txtKey.Name = "txtKey";
txtKey.HeaderText = "txtKey";
this.dataGridView2.Columns.Add(txtKey);
DataGridViewTextBoxColumn txtValue = new DataGridViewTextBoxColumn();
txtValue.Name = "txtValue";
txtValue.HeaderText = "txtValue";
this.dataGridView2.Columns.Add(txtValue);
DataGridViewTextBoxColumn txtStatus = new DataGridViewTextBoxColumn();
txtStatus.Name = "txtStatus";
txtStatus.HeaderText = "txtStatus";
this.dataGridView2.Columns.Add(txtStatus);
泛型:
List<Certification> l_Test = new List<Certification>();
Certification cer = new Certification();
cer.Descrribed1 = new Dictionary<String, String>();
cer.Descrribed1.Add("123", "aaa");
cer.Descrribed1.Add("456", "bbb");
cer.Descrribed1.Add("789", "ccc");
cer.CertificationStatus1 = "离开";
cer.CertificationStatus1 = "在线";
cer.CertificationStatus1 = "忙碌";
l_Test.Add(cer);
绑定数据:
this.dataGridView2.Columns["txtKey"].DataPropertyName = "Descrribed1";
this.dataGridView2.Columns["txtStatus"].DataPropertyName = "CertificationStatus1";
this.dataGridView2.DataSource = l_Test;
显示效果:
不能显示dictionary的Key和Value
最后用循环处理,但是数据量大不好处理:
泛型添加数据:
Dictionary<String, String> dicDescribe = new Dictionary<String, String>();
dicDescribe.Add("标题", "描述");
Dictionary<String, String> dicName = new Dictionary<String, String>();
dicName.Add("名称", "内容");
l_Test.Add(new Certification(dicDescribe, "离开"));
l_Test.Add(new Certification(dicName, "忙碌"));
l_Test.Add(new Certification(null, "在线"));
循环写入数据:
String sKey = String.Empty;
String sValue = String.Empty;
int nRow = 0;
foreach (Certification l_cer in l_Test)
{
//添加行
DataGridViewRow dbRow = new DataGridViewRow();
this.dataGridView2.Rows.Add(dbRow);
String sStatus = l_cer.CertificationStatus1.ToString();
if (l_cer.Descrribed1 != null)
{
foreach (KeyValuePair<String, String> item in l_cer.Descrribed1)
{
sKey = item.Key.ToString();
sValue = item.Value.ToString();
}
}
else
{
sKey = "";
sValue = "";
}
this.dataGridView2.Rows[nRow].Cells[0].Value = sKey;
this.dataGridView2.Rows[nRow].Cells[1].Value = sValue;
this.dataGridView2.Rows[nRow].Cells[2].Value = sStatus;
nRow++;
}
显示:
各位老大谁有更好的办法处理?
- 遍历List<T>包含字典Dictionary和其他字段dataGridView绑定数据
- 如何将字典Dictionary数据绑定到DataGridView控件上
- winform DataGridView绑定List<T>类型数据
- List<T> 直接绑定到datagridview上不显示数据.
- DataGrid 绑定 字典集合 List<Dictionary<, >>
- dataGridView绑定Dictionary |Dictionary绑定到DataGridView
- 泛型集合Dictionary<T>如何绑定DataGridView
- DataGridView绑定List<T>,出现IndexOutOfRangeException异常
- 用List<T> 给 DataGridView 绑定数据时,无法正常显示
- C# 字典 Dictionary 遍历
- C# 字典 Dictionary 遍历
- datagridview 绑定数据和非绑定模式
- winform技巧—List<T>绑定datagridview控件
- List<T>绑定到datagridview时不能排序
- WinForm DataGridView 绑定泛型List(List<T>)/ArrayList不显示的原因和解决
- 数据字典(Data Dictionary)
- 数据字典(Data Dictionary)
- Datagridview 绑定 List 方法
- jxl 教程
- MySQL存储过程,并在.net中调用
- .net4.5、mvc4 项目不能用 iis7.5 承载的问题 (404)
- VC++大数据量绘图时无闪烁刷屏技术实现
- 类型修饰符volatile关键字
- 遍历List<T>包含字典Dictionary和其他字段dataGridView绑定数据
- 代码实现判断cpu是大端对齐还是小端对齐
- i2c 编程接口
- Android中SharedPreferences的使用
- hadoop集群的安装、配置
- rtsp协议简介
- 在eclipse 设置字体大小
- 认识jquery
- 如果你不想继续穷下去,就看看吧,想想吧