PowerApps ギャラリーのThisItem と Selected について
ギャラリーのThisItemとSelected、PowerApps特有のプロパティで引っかかりどころだと思います。
一応docsのページもありますけど、うーん。
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/functions/operators#thisitem-operator
ThisItem自体はフォームでも用いますが、ここではわかりやすくするためにギャラリーのThisItemにフォーカスすることにします。
ThisItemについて
ギャラリーはItemsプロパティにテーブルを指定してデータ ソースの複数のレコードを表示できますが、このレコード=Itemになります。
1行目の”Item”
2行目の”Item”
3行目の”Item”
といった感じでデータが詰まっているわけです。それぞれ自分を指してThisItemと表しています。
1行目が”自分のItem”といったら1行目のデータを表しますし、
3行目が”自分のItem”といえば、3行目のデータを表すわけです。
selectedについて
Selectedプロパティはそのまま、「そのギャラリーコントロールで選択された項目」を指すものです。
これはイベントではなく、最後にクリックしたものがずっと参照されています。
これは1行目が見ても2行目が見ても変わらないですね。
最後に選んだのが3行目なら、1行目だろうが2行目だろうが3行目だろうが
“最後に選んだのは3行目だ!”となって、3行目のデータを参照してくれるわけです。
このように、ThisItemとSelectedは用途として明確に異なっています。
こんがらがっている場合は実際に見てみると一目瞭然です。
実例
データソース
表示テキスト
結果
2行目のレコードを選択しているので、SelectedはすべてItem2を参照していますね。
あとがき
アプリで実現したいことや、実現方法によってはThisItemでもSelectedでも見た目上うまくいく場合があるかもしれません。ですが、どちらかといえばどっちを使うのが正しいかというのは意識できると、後々仕様変更されて泣きを見たりせず幸せになれると思います。
PR
Power Apps や Power Automate に関する技術支援を提供しています。
Power Apps / Power Automate 技術支援サービス | ZEE CitizenDevSupport
https://powerapps.zee-citizendevsupport.com/