Ich möchte eine einfache App erstellen, um die Geburtsdaten des Kontakts zu erhalten. Im Folgenden habe ich etwas Code implementiert, aber ich weiß nicht, was eigentlich vor sich geht.Wie bekomme ich Geburtstage von Kontakten in UWP?
var contactPicker = new ContactPicker();
contactPicker.CommitButtonText = "Select";
contactPicker.SelectionMode = ContactSelectionMode.Fields;
contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber);
contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.Email);
var contacts = await contactPicker.PickContactsAsync();
if (contacts != null && contacts.Count > 0)
{
try
{
foreach (Contact contact in contacts)
{
var birthday = contact.ImportantDates.First(d => d.Kind ==
ContactDateKind.Birthday);
textBlock.Text = birthday.Day.ToString();
}
}
catch (Exception w)
{
textBlock.Text = w.ToString();
}
}
In obigem Code erfolgreich die E-Mail und Namen, den ich bekommen, aber ich kann nicht Geburtstage bekommen, da es keine Methoden zur Verfügung, wie „contacts.birthday“ sind Danke.
Die Ausnahme, die ich gefangen ist:
'System.InvalidOperationException' in System.Linq.dll
System.InvalidOperationException: Sequence contains no matching element at
System.Linq.Enumerable.First[TSource](IEnumerable`1 source, Func`2
predicate) at ContactApiSample.MainPage.<button_Click>d__1.MoveNext()
Die Fehlermeldung sagt, was falsch ist. "Sequenz enthält keine passenden Element." Du fragst nach dem ersten 'ContactDate', das ist ein Geburtstag, aber was, wenn es überhaupt keinen gibt? –
Nein, aber ich habe einen Kontakt mit dem Geburtsdatum erstellt und ich versuche es mit diesem. Obwohl ich den Geburtstag nicht bekommen habe. Aber glücklicherweise habe ich den Weg gefunden. Schaut einfach die unten stehende Antwort von @GraceFeng an, BTW danke für die Antwort. –
Aber Sie haben nicht nach den wichtigen Daten gefragt, die zurückgegeben werden sollen. Sie haben nicht 'contactPicker.DesiredFieldsWithContactFieldType.Add (ContactFieldType.ImportantDate);' –