请教关于WPF中DataGrid数据绑定的问题~

plxzzlx1 2013-05-13 09:49:56
在WPF中,datagrid要求绑定的数据是一个集合,集合中每一个元素(对象)对应DataGrid的一行,而每个元素的成员根据绑定情况,则显示为相应的列。
C#代码如下:
 
ObservableCollection<Member> memberData = new ObservableCollection<Member>();

其中Member类的定义如下:

public class Member
{
public String Name { get; set; }
public bool Sex{ get; set; }
}

这时,如果memberData有3个成员,则DataGrid有3行2列。如图所示:


但是如果Member中,这时存在一个集合,现在要求对于这个集合每一个元素要能在数据中动态的增加一列。那么该如何实现呢?
修改后的Member类如下:

public class Member
{
public String Name { get; set; }
public bool Sex{ get; set; }
public List<Borrow> bList{get;set;}
}
public class Borrow
{
public String Name {get;set;}
public String Date {get;set;}
}

我希望最终能显示的效果如下:

对于bList中每存在一个元素,则生成一个列。而每一列对于相应的Date。
我现在已经实现了动态的生成列的功能。但是数据绑定的时候出现问题了。

foreach (Borrow b in dataMember.bList)
{
DataGridTextColumn c = new DataGridTextColumn() { Header = b.Name,Binding = new Binding("bList/Date") };
dataGrid.Columns.Add(c);
}

这样虽然数据可以绑定数据,但是显示时,每一列显示的都是bList中的第一个元素。这怎么解决呢?

...全文
585 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
coobai 2013-06-13
好复杂,你这是要 行转列?而且列数是不固定的,要按最长 bList.Count的数量来生成多少个列。。。。
回复
Jeece_JX 2013-06-13
为什么要foreach去绑定数据,数据都是一列直接绑定,你不用foreach试一下
回复
相关推荐
发帖
.NET Framework
创建于2007-09-28

1.7w+

社区成员

.NET技术 .NET Framework
申请成为版主
帖子事件
创建了帖子
2013-05-13 09:49
社区公告
暂无公告