Асинхронный код в SilverLight с SharePoint - PullRequest
0 голосов
/ 22 февраля 2012

У меня есть проблемы с моим кодом. У меня есть кнопка 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 голосов
/ 20 апреля 2012

Это работает для меня:

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());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...