private void abi3_Click(object sender, EventArgs e)//gonder
{
foreach (var item in ContactResultsData.SelectedItems)
{
Contacts cons = new Contacts();
cons.SearchCompleted += new EventHandler<ContactsSearchEventArgs> (Con_SearchCompleted);
cons.SearchAsync(item.ToString(), FilterKind.DisplayName, null);
}
}
void Con_SearchCompleted(object sender, ContactsSearchEventArgs e)
{
foreach (var contact in e.Results)
{
if (contact.PhoneNumbers.Count() > 0)
{
textBox1.Text = textBox1.Text + ";" + contact.PhoneNumbers.FirstOrDefault();
}
}
我正在使用此代码获取联系人的电话号码。我有一个列表视图,所有联系人都在其中。然后我多选并显示姓名和电话。
但是,例如,我的一个联系人姓名是“alex”。另一个是“alex de sousa”。 当我选择“alex”和“alex de sousa”时, 这个程序只获得两次亚历克斯的数字。 没有显示alex de soousa的号码。
我该如何解决这个问题。感谢
答案 0 :(得分:1)
要回复评论中的更新问题,您可以查看联系人的DisplayName
是否与搜索查询完全匹配。
将查询作为对象的状态传递给
cons.SearchAsync(item.ToString(), FilterKind.DisplayName, item.ToString());
然后阅读SearchCompleted
事件中的状态,看看它是否与此完全匹配
if (contact.PhoneNumbers.Count() > 0 && String.Equals(contact.DisplayName, e.State.ToString()))