PowerApps の「ドロップダウン」コントロールが初期化、というか未選択(ブランク)状態に戻せる設定ができるようになりました。
ドロップダウンとコンボボックスについて
PowerApps には似たような機能が2つあります。よくわからない、という方は、当方が以前にまとめた下記の記事をご確認ください。
[PowerApps Tip's]そっくりさん?ドロップダウンとコンボボックスのちがい
上記の記事投稿時、ドロップダウンコントロールは未選択(ブランク)にすることができませんでした。それがVerUpによって未選択状態を設定できるようになったようですよ!
実際の動作
下記の動画をご確認ください。
#PowerApps DropDown [AllowEmptySelection]property pic.twitter.com/2KdapnTNsG
— やま (@yamad365) October 19, 2019
未選択状態を設定する方法
[AllowEmptySelection]プロパティを true に設定するだけです。
既に、動画を提示しちゃってるのでネタバレしまくりですねw
未選択状態にする際の注意
動画を見て気づいた方もいるかと思いますが、リストの選択肢に空白行(ブランク)が増えるワケではありません。未選択状態に戻すには”現在選択されている値を、再度クリックする”必要があります。
正直、このオペレーションは初見では全く気づけないと思います。なので、画面上にメッセージを置くか、アプリのデモ動画などで周知するなどのフォローが若干必要かなぁ、と思いました。
[Reset]プロパティと組み合わせてみる
PowerApps の各種コントロールを初期値に戻す、[Reset]プロパティと組み合わせてみましょう。こちらも動画をご覧ください。
Resetプロパティ組み合わせ動画
#PowerApps DropDown [AllowEmptySelection]property + [Reset]Action pic.twitter.com/BnOUHzbfpe
— やま (@yamad365) October 20, 2019
解説
Reset(=初期値に戻す)処理が実施される = [Reset]プロパティ = true になった場合、コントロールの値は[Default]プロパティで指定された値になります。まず、初期値をブランク(Blank())に設定します。
Blank()
また、Reset処理は変数を経由して、
true = リセット処理される
false = リセット処理されない
という状況を作り出す必要があります。
動画では、アイコンクリック時に変数を true にして、ドロップダウンコントロールのOnChangeで、その変数を false にしています。
ここで [AllowEmptySelection]プロパティの true/false によって動作に違いが発生します。
[AllowEmptySelection]=true → Reset で Blank()(空白)になります。
[AllowEmptySelection]=false → Reset で 1 (厳密には先頭のアイテム)になります。
まとめ
- ドロップダウンコントロールで未選択状態を指定できるようになった
- [AllowEmptySelection]で指定する(true で発動)
- 未選択状態(ブランク)にするためには、現在選択中のアイテムを再選択する必要がある
- Reset と組み合わせる場合は、前述プロパティの true/false で動作が異なるので注意
過去、この[AllowEmptySelection]プロパティが存在しなかった時は、コンボボックスを選択するか、コレクションの先頭に空白のデータを追加したうえでデータソースの値をForAllで詰め込みなおす等のテクニックを使う必要がありました。このプロパティが追加されたことで、ドロップダウンコントロールの利用頻度があがるのかな、と思った次第。ナイスアップデートですね!
なお、このプロパティは、当方が所属するチームの優秀なメンバーが見つけてくれました。感謝!
それでは、皆さま。素晴らしい Power Platform Life を!