今回は複数の連絡先を取得する方法を見ていきます。
まず連絡先ピッカーですがPickContactAsync ではなく PickContactsAsync を使用します。ぱっと見ただけでは違いがわかりませんが、よく見ると複数形になっていることがわかります。
ピッカーで複数の連絡先を取得した結果は IList<Contact> 型の変数へ格納します。リストなので取得はforeachを使用します。
以下にコード例を示します。
public IList<Contact> contacts;
private async void btnGetContact_Click(object sender, RoutedEventArgs e)
{
var picker = new Windows.ApplicationModel.Contacts.ContactPicker();
// 選択モードをFieldsに設定
picker.SelectionMode = Windows.ApplicationModel.Contacts.ContactSelectionMode.Fields;
// 連絡先ピッカーで取得するフィールドを指定
picker.DesiredFieldsWithContactFieldType.Add(
Windows.ApplicationModel.Contacts.ContactFieldType.Address);
picker.DesiredFieldsWithContactFieldType.Add(
Windows.ApplicationModel.Contacts.ContactFieldType.PhoneNumber);
// 複数の連絡先を取得する
contacts = await picker.PickContactsAsync();
// 連絡先が選択されている場合
if (contacts != null && contacts.Count > 0)
{
// 1件ずつ連絡先を取得する
foreach (Contact contact in contacts)
{
if (contact.Emails.Count > 0)
{
textBlockEmail.Text = contact.Emails[0].Address;
}
else if (contact.Phones.Count > 0)
{
textBlockPhone.Text = contact.Phones[0].Number;
}
}
}
}
Please follow and like us:
コメント