使用LINQ填充dataGrid返回IEnumerable?

时间:2011-11-22 18:25:40

标签: sql silverlight linq datagrid return

我正在尝试用我的数据库中的数据填充数据网格(称为dgDeelnemers),我使用以下LINQ方法。

[OperationContract]
public IEnumerable<Inschrijvingen> getInschrijvingen()
{
    var query = (from p in dc.Inschrijvingens select p);

    IEnumerable<Inschrijvingen> i = query;

    return i;
}

然后我使用以下代码将数据分配给视图中的datagrid。

  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;
        }
    }

但是当我导航到该页面时,我收到以下错误:

  

对象引用未设置为对象的实例。在   OndernemersAward.Views.Deelnemers.client_getInschrijvingenCompleted(对象   sender,getInschrijvingenCompletedEventArgs e)at   OndernemersAward.InschrijvingenServiceReference.InschrijvingenServiceClient.OngetInschrijvingenCompleted(对象   状态)

我不确定是什么造成了这种情况,但我认为“我”的回报值是正确的。

enter image description here

感谢您抽出宝贵时间阅读并帮助我,我非常感谢! 托马斯

2 个答案:

答案 0 :(得分:1)

您没有InitializeComponent()

(取自我的评论):)

答案 1 :(得分:0)

您确定在事件发生时您的控件已呈现?看起来lblDeelnemersdgDeelnemers为空。也许在控件加载完成之前不要调用client.getInschrijvingenAsync();

相关问题