DataGrid数据绑定问题
有2张表,用户表tbUser(主表),角色表tbRole(外键表), 数据层我用的是entity framework,所以在获取外键的时候不像以前ADO.net是RoleID,而是要通过tbUser.tbRole.RoleID导航获取。我在做界面上的数据绑定的时候,如果是tbUser中的名称name我可以这样绑定:
<my:DataGridTextColumn Header="用户姓名" Binding="{Binding Path=Name}" />
可是当绑定角色时却不可以这样绑定:
<my:DataGridTextColumn Header="用户姓名" Binding="{Binding Path=RoleID}"/>
因为返回的IList<tbUser>集合中的对象tbUser没有RoleID属性,只有tbRole,但是也不能这样绑定:
<my:DataGridTextColumn Header="用户姓名" Binding="{Binding Path=tbRole}"/>
因为tbRole是一个对象,我需要的是显示角色名称。
请高手指点!
[解决办法]
我去看看啥事主键表,外键表。。。
[解决办法]
角色表tbRole(外键表), 不能直接绑定。
你的角色名称在实体中如何定义的? 检查IList<tbRole>。
[解决办法]
我理解的楼主意思就是
public class A
{
public string Title {get;set;}
public int ID {get;set}
}
public class B
{
public A SubClass {get;set;}
}
现在后台取到的类似List<B>的数据,但前台想绑定的都是class A里面的字段。 所以不知道怎么写了。
不知道我理解的对否?
[解决办法]
我知道返回list<A> 可以绑定datagrid,但是。。首先要定义class A。。把内容塞进去。。问题是。。我以后绑定很多次。。列名个书不一样。。那我不是要定义很多给类。。每次都这样。。不是命都没了。。所以在研究怎么根据给他字段。。自动生成。。把他封装一下。。可是我不会自动生成呢个class 里面的字段。。还没找到方法。。
[解决办法]