XAML代码:
<Window x:Class="WpfApplication72.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication72"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid x:Name="listBox" ItemsSource="{Binding}" />
</Grid>
</Window>
隐藏代码:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication72
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private Formula1v2Entities data = new Formula1v2Entities();
public MainWindow()
{
InitializeComponent();
this.DataContext = collection;
}
public IEnumerable<object>collection
{
get
{
return (from r in data.Racers
select new
{
Id=r.Id,
FirstName=r.FirstName,
LastName=r.LastName,
Nationality=r.Nationality
}).ToList();
}
}
}
}
在隐藏代码中如果没有ToList()方法的话,运行程序会报如下的错误:
Additional information: Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery, DbRawSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList(). For ASP.NET WebForms you can bind to the result of calling ToList() on the query or use Model Binding,
for more information see http://go.microsoft.com/fwlink/?LinkId=389592.
参考链接:
https://www.devexpress.com/Support/Center/Question/Details/Q580427