ContactPicker.PickMultipleContactsAsync

时间:2015-08-09 09:34:24

标签: c# win-universal-app windows-10 contactpicker

ContactPicker.PickSingleContactAsyncContactPicker.PickMultipleContactsAsync的文档声明他们可以"可能"在Windows 8.1或Windows Phone 8.1之后不受支持

并支持他们不是。不仅仅是已弃用,而且已经废弃,支持ContactPicker.PickContactAsyncContactPicker.PickContactsAsync,旧方法在Windows 10下抛出了未实现的异常。

在回答我关于Stack Overflow的最后一个问题之后,我阅读了Windows 10 documentation page for PickContactsAsync并下载了该页末尾引用的the sample。在Win10下运行该示例,我发现:

  • ContactPicker.PickContactAsync允许按预期选择一个联系人。
  • ContactPicker.PickContactsAsync有效,但只允许选择一个联系人,这与样本提出的期望相反。

ContactPicker.PickContactsAsync的行为是否很快就会被纠正,由于Windows 10上的油漆仍然干燥导致一个简单的故障,或是某些天才决定停止支持多个联系人选择?

我可以写一个循环,以便用户可以连续选择它们 - 我在短期内没有看到任何其他选项 - 但这是一个非常糟糕的用户体验。如果我需要设置一些设置或选项,我会非常喜欢听到它。

支持以下信息以获得良好答案

这是拣货员在推出时的样子。 NoIconBar

应用栏在哪里?它没有显示。如果单击或点击某个联系人,则会选中该联系人并关闭选择器。只有当您点击“#34;选择联系人”时才会这样做。看起来像这样:

IconBar

如果您随后单击带刻度的列表字形,则UI突然变为:

MultiselectAtLast

一旦你知道如何,并且非常难以发现,这很容易。这无疑是被称为Windows 8的单倍体发作的残余。

其他伤亡包括Shift和Ctrl键,一旦允许范围和鼠标/键盘环境中的多选。这些行为由Windows ListBox实现,Common Dialogs使用它。据推测,新UI不使用ListBox。

Microsoft的一些未经请求的建议

Windows 10免费升级的重点是将其锚定在家中,因为这可以实现两件事。

  • 在家中习惯使用Windows的人会想要在工作场所使用它。
  • 它灌输了年轻人。你不能让他们独自与苹果公司合作。那只是令人毛骨悚然。
像这里考虑的用户体验灾难将取消你的好工作。联系选择器是新的通用对话框。它会影响所有内容。尽管是应用程序开发人员的愚蠢行为,但您最有能力创建出色的UX

以下是我认为你应该做的事情:当通过PickContactsAsync调用联系人选择器时,已经在多选模式下打开它。

还有一件事

虽然我在微软上倾销,但样本中也存在一个错误。在Scenario2_PickContacts.xaml.cs这一行

if (this.contacts.Count > 0)

应该阅读

if (this.contacts != null && this.contacts.Count > 0)

因为如果你不挑选任何东西,this.contacts为空并且是barfs。

0 个答案:

没有答案