我有这段代码:
private async void ButtonSelectContact_OnTapped(object sender, TappedRoutedEventArgs e)
{
var contactPicker = new Windows.ApplicationModel.Contacts.ContactPicker
{
CommitButtonText = "Invite"
};
var contact = await contactPicker.PickSingleContactAsync();
if (contact != null)
{
textBoxPerson.Text = contact.Name;
textBoxEmail.Text = contact.Emails[0].ToString();
}
}
..效果很好,除了在选择联系人之后,textBoxEmail.Text包含“Windows.ApplicationModel.Contacts.ContactField”(它应该类似于“rupertTpupkin@kingOfComedy.com”)。
答案 0 :(得分:2)
那是因为contacts.Emails
是ContactField
个对象的列表。使用contact.Emails[0].Value
获取所需的电子邮件地址。您可以使用.Type
检索电子邮件地址的类型。
MSDN官方文档:http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.contacts.contactfield
答案 1 :(得分:1)
因为它们在实现类时没有覆盖ToString()方法,所以它调用Object的ToString()方法,该方法返回类名。您可以致电contact.Emails[0].Value
获取价值。