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

Posted

技术标签:

【中文标题】在 WP8 的联系人列表中添加联系人【英文标题】:Append contacts in contact list in WP8 【发布时间】:2014-11-05 12:31:01 【问题描述】:

我想从 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();


                

            
      

【问题讨论】:

我认为这个链接可以帮助你 [***.com/questions/18426871/… [1]: ***.com/questions/18426871/… 【参考方案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();
   

【讨论】:

成功添加第一个联系人后,它退出了foreach循环,如何解决这个问题?而不是 foreach 我应该选择其他解决方案吗? 是的,您需要另一种解决方案。您正在 UI 线程中工作,您无法停止它并等待操作完成。尝试在 saveContactTask.Completed 函数中使用类级别变量创建循环。

以上是关于在 WP8 的联系人列表中添加联系人的主要内容,如果未能解决你的问题,请参考以下文章

如何通过长按我的 Android 应用程序的联系人列表中的联系人添加附加选项?

如何通过Android手机联系人列表中的代码添加联系人详细信息..?

谁能帮我知道如何将 ags xmpp 联系人列表添加到 XML 文件并从中显示到列表视图中

如何使用复选框将Android联系人添加到列表视图中[重复]

根据电话号码添加原始联系人时联系人重复

使用收件人过滤器将联系人添加到多个地址列表