请教关于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中的第一个元素。这怎么解决呢?

...全文
638 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
coobai 2013-06-13
  • 打赏
  • 举报
回复
好复杂,你这是要 行转列?而且列数是不固定的,要按最长 bList.Count的数量来生成多少个列。。。。
Jeece_JX 2013-06-13
  • 打赏
  • 举报
回复
为什么要foreach去绑定数据,数据都是一列直接绑定,你不用foreach试一下

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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