locked
查找联系人的信息的SearchCompleted到底什么时候会激活 RRS feed

  • 问题

  •                    

    我的程序里有下面一段代码:

                   for (int j = 0; j < ToDoItems.Count; j++)
                        {
                            if (ToDoItems[j].Header == store.GetDirectoryNames().ElementAt(i))
                            {
                               Contacts contacts = new Contacts();
                               contacts.SearchCompleted += delegate(object sender, ContactsSearchEventArgs g)
                               {
                                   listboxCon.DataContext = g.Results;
                               };
                               contacts.SearchAsync(ToDoItems[j].DisplayName, FilterKind.DisplayName, "State String 3");
                            }

                            listboxs[i].Items.Add(listboxCon.Items[0]);
                        }

    我想通过外部循环获得要查找的联系人信息,然后赋予给listboxs(list<listbox>,是个listbox集合),可是我运行以后发现listboxCon.DataContext = g.Results; 这一语句是在所有外循环结束以后,才回到这条语句进行这条语句的独自循环。。这样我就得不到想要的结果了。。。有什么方法可以让其循环一次调用一次啊?而不是全部循环结束后它自己再在那独自循环!

                            
    2012年10月31日 5:55

答案

  • 你好,

    当搜索联系人完成时触发SearchCompleted事件,你这里循环时进行多次搜索,所以多次调用这一事件,但有可能所有循环结束后第一次搜索才完成,这时候才调用SearchCompleted事件。可以尝试每次调用完设置for循环暂停一段时间观察结果。


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年11月1日 7:18
    版主