我想創建一個簡單的應用程序來獲取聯繫人的出生日期。下面我已經實現了一些代碼,但我不知道實際發生了什麼。如何從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();
}
}
在上面的代碼中,我順利拿到了電子郵件,姓名等,但因爲沒有可用像「contacts.birthday」的方法我不能讓生日謝謝。
不同的是我抓住的是:
'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()
錯誤消息說出了什麼問題。 「序列不包含匹配的元素。」你問第一個'ContactDate'是一個生日,但如果沒有一個呢? –
不,但我已經創建了一個聯繫人的出生日期,我正在嘗試與那一個。雖然我沒有得到生日。幸運的是,我找到了方法。看看@GraceFeng提供的下面的答案,BTW謝謝你的回覆。 –
但你沒有要求重返的重要日期。你沒有說'contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.ImportantDate);' –