ContactPicker.PickSingleContactAsync
和ContactPicker.PickMultipleContactsAsync
的文档声明他们可以"可能"在Windows 8.1或Windows Phone 8.1之后不受支持
并支持他们不是。不仅仅是已弃用,而且已经废弃,支持ContactPicker.PickContactAsync
和ContactPicker.PickContactsAsync
,旧方法在Windows 10下抛出了未实现的异常。
在回答我关于Stack Overflow的最后一个问题之后,我阅读了Windows 10 documentation page for PickContactsAsync并下载了该页末尾引用的the sample。在Win10下运行该示例,我发现:
ContactPicker.PickContactAsync
允许按预期选择一个联系人。 ContactPicker.PickContactsAsync
有效,但只允许选择一个联系人,这与样本提出的期望相反。 ContactPicker.PickContactsAsync
的行为是否很快就会被纠正,由于Windows 10上的油漆仍然干燥导致一个简单的故障,或是某些天才决定停止支持多个联系人选择?
我可以写一个循环,以便用户可以连续选择它们 - 我在短期内没有看到任何其他选项 - 但这是一个非常糟糕的用户体验。如果我需要设置一些设置或选项,我会非常喜欢听到它。
应用栏在哪里?它没有显示。如果单击或点击某个联系人,则会选中该联系人并关闭选择器。只有当您点击“#34;选择联系人”时才会这样做。看起来像这样:
如果您随后单击带刻度的列表字形,则UI突然变为:
一旦你知道如何,并且非常难以发现,这很容易。这无疑是被称为Windows 8的单倍体发作的残余。
其他伤亡包括Shift和Ctrl键,一旦允许范围和鼠标/键盘环境中的多选。这些行为由Windows ListBox实现,Common Dialogs使用它。据推测,新UI不使用ListBox。
Windows 10免费升级的重点是将其锚定在家中,因为这可以实现两件事。
以下是我认为你应该做的事情:当通过PickContactsAsync调用联系人选择器时,已经在多选模式下打开它。
虽然我在微软上倾销,但样本中也存在一个错误。在Scenario2_PickContacts.xaml.cs
这一行
if (this.contacts.Count > 0)
应该阅读
if (this.contacts != null && this.contacts.Count > 0)
因为如果你不挑选任何东西,this.contacts
为空并且是barfs。