我在数据库(SQL Server)中使用了存储过程
select namebuffet,namefamilymember,idmember,Sum(finalpricefactorbuffet)-Sum((delivery*30)/100) as Price from Buffet_factorbuffet
Inner join Buffet_buffet
on idbuffet=buffetidfactor
Inner join Member_member
on idmember=memberid
inner join Buffet_banktransaction
on factorid=idfactorbuffet
where success=1 And checkout!=2 And datecheckouted is null
GROUP BY namebuffet,namefamilymember,idmember
然后我将其导入带有实体框架的WPF项目中,并编写这样的类
public class Buffetinformation
public List<Windows_BuffetInformation_Result> Getbuffetinformation ()
{
using (MYDBEntities DB = new MYDBEntities())
var q = DB.Windows_BuffetInformation().AsQueryable();
return q.ToList();
}
我如何使用上述类将某些部分绑定到datagridview控制器 ,我的存储过程返回了一些列,例如(namebuffet,nameandfamilly,idmember和....),但我只想使用namebuffet和idmember并在我的datagridview或其他控制器中显示它们
我已经看到了使用ado.net的一些示例,但是我找不到实体框架的示例
答案 0 :(得分:0)
您可能直接绑定到模型对象。在实现inotify属性已更改的视图模型中,将数据网格的itemssource绑定到公共属性Observablecollection。
observablecollection可以在其构造函数中使用List。 您的ToList()中有一个列表。 因此,您可以使用该属性将属性设置为所生成列表中的新observablecollection。
那将是一个非常基本的方法,因为您无处可放逻辑。 更常见的是迭代模型实例并新建行viewmodel,然后复制属性。我通常使用反射来复制匹配的属性。
但是,如果您只想“入门”。
答案 1 :(得分:0)
要将数据绑定到DataGrid,只需将结果列表绑定到DataGrid ItemsSource属性。仅显示一些部分主要是关于在XAML中设置数据网格。 首先,在定义DataGrid时,应将AutoGenerateColumns设置为False。然后,您应该定义一个DataGrid.Columns并为每列做一个明确的定义。像这样:
<DataGrid Name=MyDataGrid AutoGenerateColumns=False>
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Binding="{Binding idmember}"/>
<DataGridTextColumn Header="Name" Binding="{Binding namebuffet}"/>
</DataGrid.Columns>
</DataGrid>