SilverLight with SharePoint中的异步代码

时间:2012-02-22 13:22:40

标签: silverlight sharepoint-2010

我的代码有问题。按下按钮后我有silverlight按钮我想加载文档库并获取有关该库中有多少项的信息,我的代码是:

 var web = context.Web;
 List sharedDocumentsList = context.Web.Lists.GetByTitle("dokumenty");

 int i = sharedDocumentsList.ItemCount;

 context.Load(sharedDocumentsList);
 context.ExecuteQueryAsync(OnFileWriteSucceeded, OnFileWriteFailed);

但我仍然遇到同样的问题。

该集合尚未初始化。尚未请求或请求尚未执行。可能需要明确要求

我如何获得ItemCount。这只是我需要在循环中使用此列表的一个简单示例,依此类推。但我需要解决这个主要问题。如何直接在按钮单击方法中使用此文档列表。

谢谢。

1 个答案:

答案 0 :(得分:0)

这对我有用:

private List docList;
private void GetList()
{
    var context = new ClientContext(ApplicationContext.Current.Url);
    context.Load(context.Web);
    docList = context.Web.Lists.GetByTitle("dokumenty");
    context.Load(docList);
    context.ExecuteQueryAsync(GetListSucceded, GetListFailed);
}

private void GetListFailed(object sender, ClientRequestFailedEventArgs e)
{            
    Dispatcher.BeginInvoke(() => MyErrorFunction();
}

private void GetListSucceded(object sender, ClientRequestSucceededEventArgs e)
{
    Dispatcher.BeginInvoke(() => GetItemsCount());
}

private void GetItemsCount()
{
    MessageBox.Show(docList.ItemCount.ToString());
}