虽然这已经在 StackOverflow 上发布过,但我认为这些都没有反映我的问题,而且这些解决方案也没有对我有用。所以我正在开发一个 Windows Phone 应用程序,我的工作流程有点像这样:
- 应用程序启动
- ContactPicker 打开
- 用户选择一个或多个联系人
- 根据他选择的联系人数量,将许多 PivotItem 添加到 Pivot 中。
我的代码如下:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// TODO: Prepare page for display here.
// TODO: If your application contains multiple pages, ensure that you are
// handling the hardware Back button by registering for the
// Windows.Phone.UI.Input.HardwareButtons.BackPressed event.
// If you are using the NavigationHelper provided by some templates,
// this event is handled for you.
SelectContacts();
}
private async Task SelectContacts()
{
var picker = new ContactPicker();
picker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber);
ContactsList = (List<Contact>)await picker.PickContactsAsync();
DisplayContacts();
}
private void DisplayContacts()
{
if (ContactsList != null)
{
foreach (var item in ContactsList)
{
PivotItem pivotItem = new PivotItem();
pivotItem.Header = item.FirstName.ToString();
ContentRoot.Items.Add(pivotItem);
}
}
}
据我说,在 SelectContacts() 方法中,应用程序应该等待 await 调用,一旦它返回联系人列表,它应该执行 DisplayContacts() 方法但它不起作用。我已经尝试了此代码的多种其他变体,但它们也不起作用。