Power Apps カスタムコンポーネントやギャラリー内のコントロールの一括リセット|Resetプロパティについて

ギャラリー内のコントロールを一括する方法を調べたので、その方法をメモ。

スポンサーリンク

Reset関数

まず普通に画面に配置されたコントロールをリセット(デフォルトの状態に戻す)ときには「Reset関数」を使用する。

例えばこんなテキストボックスがあって、
ユーザーがアプリを操作して変更したテキストをリセットしたいときは、こんな感じでReset関数を呼んであげれば、
テキストがデフォルトに戻る。

ギャラリー内のコントロールは外からリセットできない

ただこんな感じでギャラリーに入っているコントロールに対して、
ギャラリーの外からReset関数を呼ぶと、
「リセットできません」エラーが表示される。
ということでギャラリーの中にボタンを入れてReset関数を呼んでやると、
ボタンを押したアイテムのコントロールだけがリセットされる。

これはこれで便利だけど、この方法だとギャラリー内の全部のコントロールをリセットすることができない。

Micro Firewall Appliance, Mini PC, pFsense, Mikrotik, OPNsense, Untangle, Sophos XG, VPN, Router PC, インテル Celeron J4125, HUNSN RJ20, AES-NI, 4 x インテル I211 LAN, HDMI, Console, 8G RAM, 64G SSD
Micro Firewall Appliance, Mini PC, pFsense, Mikrotik, OPNsense, Untangle, Sophos XG, VPN, Router PC, インテル Celeron J4125, HUNSN RJ20, AES-NI, 4 x インテル I211 LAN, HDMI, Console, 8G RAM, 64G SSD
Micro Firewall Appliance, Mini PC, pFsense, Mikrotik, OPNsense, Untangle, Sophos XG, VPN, Router PC, インテル Celeron J4125, HUNSN RJ20, AES-NI, 4 x インテル I211 LAN, HDMI, Console, 8G RAM, 64G SSD
Micro Firewall Appliance, Mini PC, pFsense, Mikrotik, OPNsense, Untangle, Sophos XG, VPN, Router PC, インテル Celeron J4125, HUNSN RJ20, AES-NI, 4 x インテル I211 LAN, HDMI, Console, 8G RAM, 64G SSD
Micro Firewall Appliance, Mini PC, pFsense, Mikrotik, OPNsense, Untangle, Sophos XG, VPN, Router PC, インテル Celeron J4125, HUNSN RJ20, AES-NI, 4 x インテル I211 LAN, HDMI, Console, 8G RAM, 64G SSD
Micro Firewall Appliance, Mini PC, pFsense, Mikrotik, OPNsense, Untangle, Sophos XG, VPN, Router PC, インテル Celeron J4125, HUNSN RJ20, AES-NI, 4 x インテル I211 LAN, HDMI, Console, 8G RAM, 64G SSD
Micro Firewall Appliance, Mini PC, pFsense, Mikrotik, OPNsense, Untangle, Sophos XG, VPN, Router PC, インテル Celeron J4125, HUNSN RJ20, AES-NI, 4 x インテル I211 LAN, HDMI, Console, 8G RAM, 64G SSD
¥28,823¥33,910
(2024/11/22 00:00 時点)
Alphawolf APad1 タブレット 8インチ Helio G99 CPU Android14 タブレット 16GB+128GB+2TB拡張 6軸ジャイロ FHDディスプレイ 1920*1200 IPS画面 SIM 4G LTE通信+2.4/5G WiFi Widevine L1対応+GMS認証+GPS+方位磁針+5500mAh+8MP/16MPカメラ+顔認識+無線投影+BT5.2
Alphawolf APad1 タブレット 8インチ Helio G99 CPU Android14 タブレット 16GB+128GB+2TB拡張 6軸ジャイロ FHDディスプレイ 1920*1200 IPS画面 SIM 4G LTE通信+2.4/5G WiFi Widevine L1対応+GMS認証+GPS+方位磁針+5500mAh+8MP/16MPカメラ+顔認識+無線投影+BT5.2
Alphawolf APad1 タブレット 8インチ Helio G99 CPU Android14 タブレット 16GB+128GB+2TB拡張 6軸ジャイロ FHDディスプレイ 1920*1200 IPS画面 SIM 4G LTE通信+2.4/5G WiFi Widevine L1対応+GMS認証+GPS+方位磁針+5500mAh+8MP/16MPカメラ+顔認識+無線投影+BT5.2
Alphawolf APad1 タブレット 8インチ Helio G99 CPU Android14 タブレット 16GB+128GB+2TB拡張 6軸ジャイロ FHDディスプレイ 1920*1200 IPS画面 SIM 4G LTE通信+2.4/5G WiFi Widevine L1対応+GMS認証+GPS+方位磁針+5500mAh+8MP/16MPカメラ+顔認識+無線投影+BT5.2
Alphawolf APad1 タブレット 8インチ Helio G99 CPU Android14 タブレット 16GB+128GB+2TB拡張 6軸ジャイロ FHDディスプレイ 1920*1200 IPS画面 SIM 4G LTE通信+2.4/5G WiFi Widevine L1対応+GMS認証+GPS+方位磁針+5500mAh+8MP/16MPカメラ+顔認識+無線投影+BT5.2
Alphawolf APad1 タブレット 8インチ Helio G99 CPU Android14 タブレット 16GB+128GB+2TB拡張 6軸ジャイロ FHDディスプレイ 1920*1200 IPS画面 SIM 4G LTE通信+2.4/5G WiFi Widevine L1対応+GMS認証+GPS+方位磁針+5500mAh+8MP/16MPカメラ+顔認識+無線投影+BT5.2
Alphawolf APad1 タブレット 8インチ Helio G99 CPU Android14 タブレット 16GB+128GB+2TB拡張 6軸ジャイロ FHDディスプレイ 1920*1200 IPS画面 SIM 4G LTE通信+2.4/5G WiFi Widevine L1対応+GMS認証+GPS+方位磁針+5500mAh+8MP/16MPカメラ+顔認識+無線投影+BT5.2
¥22,499¥29,999
(2024/11/22 00:00 時点)
ALLDOCUBE iPlay50 Pro NFE 10.36インチタブレット Helio G99 8コアCPU 【WidevineL1に対応アップ版】 2000x1200 FHD In-Cellディスプレイ 8GB+128GB 2TB拡張 Android 13タブレット 4G LTE WiFi GPS Bluetooth OTG GMS認証
ALLDOCUBE iPlay50 Pro NFE 10.36インチタブレット Helio G99 8コアCPU 【WidevineL1に対応アップ版】 2000x1200 FHD In-Cellディスプレイ 8GB+128GB 2TB拡張 Android 13タブレット 4G LTE WiFi GPS Bluetooth OTG GMS認証
ALLDOCUBE iPlay50 Pro NFE 10.36インチタブレット Helio G99 8コアCPU 【WidevineL1に対応アップ版】 2000x1200 FHD In-Cellディスプレイ 8GB+128GB 2TB拡張 Android 13タブレット 4G LTE WiFi GPS Bluetooth OTG GMS認証
ALLDOCUBE iPlay50 Pro NFE 10.36インチタブレット Helio G99 8コアCPU 【WidevineL1に対応アップ版】 2000x1200 FHD In-Cellディスプレイ 8GB+128GB 2TB拡張 Android 13タブレット 4G LTE WiFi GPS Bluetooth OTG GMS認証
ALLDOCUBE iPlay50 Pro NFE 10.36インチタブレット Helio G99 8コアCPU 【WidevineL1に対応アップ版】 2000x1200 FHD In-Cellディスプレイ 8GB+128GB 2TB拡張 Android 13タブレット 4G LTE WiFi GPS Bluetooth OTG GMS認証
ALLDOCUBE iPlay50 Pro NFE 10.36インチタブレット Helio G99 8コアCPU 【WidevineL1に対応アップ版】 2000x1200 FHD In-Cellディスプレイ 8GB+128GB 2TB拡張 Android 13タブレット 4G LTE WiFi GPS Bluetooth OTG GMS認証
ALLDOCUBE iPlay50 Pro NFE 10.36インチタブレット Helio G99 8コアCPU 【WidevineL1に対応アップ版】 2000x1200 FHD In-Cellディスプレイ 8GB+128GB 2TB拡張 Android 13タブレット 4G LTE WiFi GPS Bluetooth OTG GMS認証
¥19,999¥24,999
(2024/11/22 00:00 時点)

ギャラリー内のコントロールを外側から一括リセットする

ギャラリー内のコントロールを一括リセットする場合は、そのコントロールのResetプロパティを使用する。
このResetプロパティは、値が「true」になったときにそのコントロールをリセットしてくれる、というプロパティ。

そこでこんな感じでBool型の変数を宣言し、「true→false」と更新する処理を書いてあげて、
その変数をコントロールのResetプロパティに入れてあげれば、
ボタンを押したときにこんな感じで一括でリセットしてくれる。

カスタムコンポーネント内のコントロールのリセット

続いてカスタムコンポーネント内のコントロールをアプリからリセットしたいとき。

こんな感じでカスタムコンポーネントのOnReset関数内で各コントロールをReset関数で呼ぶようにして、
アプリからReset関数で対象のカスタムコンポーネントを指定してあげれば、
無事リセットされる。

カスタムコンポーネント内のギャラリー内のコントロールをリセットする

最後はこんな感じのカスタムコンポーネント内のギャラリー内のコントロールをリセットする場合。

方法1:カスタムコンポーネント内の変数を利用する

1つ目はカスタムコンポーネント内の変数を利用する方法。

こんな感じでカスタムコンポーネントのOnReset関数でbool型の変数を宣言、更新してあげるようにして、
この変数をリセットしたいコントロールのResetプロパティに入れてあげる。
そしたらアプリからReset関数で対象のコンポーネントを呼んであげれば、
一括リセットされる。

この方法でも全然問題なく動作するんだけど、もしこのコンポーネントの「アクセスアプリスコープ」を「オン」にしなきゃいけなくなったとき、この変数は「グローバル変数」になってしまうため、アプリに配置したすべてのこのカスタムコンポーネントに影響を与えてしまう

そこで「アクセスアプリスコープ」をオンにする可能性がある場合は、次の方法がよいかと。

方法2:カスタムコンポーネントに入力プロパティを実装する

2つ目の方法はこんな感じでカスタムコンポーネントにbool型入力プロパティを実装して、
その入力プロパティをリセットしたいコントロールのResetプロパティに入れる。
あとはアプリ側で変数を宣言→更新するようにして、
その変数を作成した入力プロパティにバインドしてあげれば、
こんな感じで一括リセットができる。

こちらの方法だとアクセスアプリスコープをオンにしても、アプリ側で変数の使い方を間違わない限り、他に配置した同じカスタムコンポーネントには影響を与えない。

ただ、この方法だとアプリ側で扱う変数が増えてしまうので、アクセスアプリスコープをオンにすることが絶対にない場合は1つ目の方法もありかと。

関連記事

参考公式

コメント

タイトルとURLをコピーしました