用LINQ填充dataGrid返回IEnumerable?
问题描述:
我想用我的数据库中的数据填充一个数据网格(称为dgDeelnemers),我使用以下LINQ方法。用LINQ填充dataGrid返回IEnumerable?
[OperationContract]
public IEnumerable<Inschrijvingen> getInschrijvingen()
{
var query = (from p in dc.Inschrijvingens select p);
IEnumerable<Inschrijvingen> i = query;
return i;
}
然后我使用下面的代码将数据分配给视图中的数据网格。
public partial class Deelnemers : UserControl
{
public Deelnemers()
{
InschrijvingenServiceClient client = new InschrijvingenServiceClient();
client.getInschrijvingenCompleted += new EventHandler<getInschrijvingenCompletedEventArgs>(client_getInschrijvingenCompleted);
client.getInschrijvingenAsync();
}
void client_getInschrijvingenCompleted(object sender, getInschrijvingenCompletedEventArgs e)
{
if (e.Error != null)
lblDeelnemers.Content = e.Error.ToString();
else
dgDeelnemers.ItemsSource = e.Result;
}
}
但是,当我浏览网页我得到以下错误:
Object reference not set to an instance of an object. at OndernemersAward.Views.Deelnemers.client_getInschrijvingenCompleted(Object sender, getInschrijvingenCompletedEventArgs e) at OndernemersAward.InschrijvingenServiceReference.InschrijvingenServiceClient.OngetInschrijvingenCompleted(Object state)
我不知道是什么导致了这一点,但“我”,我认为返回值是正确的。
感谢您抽出时间来阅读这帮助我,我非常感激! Thomas
答
你没有的InitializeComponent()
(从我的意见采取):)
答
您确定您的控件在事件发生时已渲染?看起来像lblDeelnemers
或dgDeelnemers
为空。也许不要在控件加载完成之前调用client.getInschrijvingenAsync();
。
是你想添加到另一个用户控件(即SL页)或者是一个用户控件上面的代码页面本身? –
是的,这是一个用户控件,我试图把它放到我的主要silverlight页面中。 (我使用urimapper导航到它) – Schoof
我没有看到InitializeComponent() –