在WP8中的联系人列表中添加联系人

时间:2014-11-05 12:31:02

标签: windows-phone-8

我想从xml文件中添加一个联系人到联系人列表,但saveContactTask.Show(); 在联系人列表中添加了一个联系人,请有人告诉我如何解决此问题。

这是我的代码:

private void AddContacts(object sender,RoutedEventArgs e)         {

        using (IsolatedStorageFile istf = IsolatedStorageFile.GetUserStoreForApplication())
        {
            using (IsolatedStorageFileStream istfs = istf.OpenFile("MyContacts.xml",FileMode.Open))
            {
                XDocument doc = XDocument.Load(istfs);
                var query = from d in doc.Root.Descendants("Contacts")
                            select new
                            {
                                firstName = d.Element("name").Value,
                                mobilePhone = d.Element("phone").Value
                            };

                foreach (var po in query)
                {

                    saveContactTask.FirstName = po.firstName;
                    saveContactTask.MobilePhone = po.mobilePhone;
                    saveContactTask.Show();


                }

            }
      }

1 个答案:

答案 0 :(得分:1)

SaveContactTask类旨在一次只添加一个联系人,而Show()函数是异步的。在第一次通话完成之前,您无法添加第二次联系。您的代码应该被重写以对saveContactTask.Completed += new EventHandler<SaveContactResult>(saveContactTask_Completed);事件作出反应,并且仅在前一个完成时才开始添加第二个(等)联系人。有可能,新的SaveContactTask应该用于第二次(等)联系,请牢记这一点。

尝试这样的事情(这只是一个想法的样本):

private List<Contact> listToAdd;
private SaveContactTask saveTask;

saveTask.Completed += addComplete;

void addComplete(...)
{
   if ( listToAdd.Count > 0 )
   {
       Contact contact = listToAdd[0];
       listToAdd.RemoveAt(0);
       saveTask. (set values from contact)
       saveTask.Show();
   }
}