- 目的:
Power Appsの画面内にある全てのコントロールを、1つのトグルで簡単に活性・非活性に切り替える方法を学びます。 - この記事で得れる知識:
コントロールをグルーピング化して簡単に活性・非活性を制御できる
はじめに
Power Appsでは、面内のコントロールを活性・非活性に切り替えることができます。この記事では、その方法について詳しく説明します。
DisplayMode プロパティとは
コントロールの活性・非活性を制御するための鍵は、「DisplayMode」プロパティにあります。このプロパティを利用することで、編集可能な状態や閲覧専用、非活性など、さまざまなモードに設定できます。
以下の画像は、Disabledモードを指定したことにより対象のコントロールを非活性にした例。
DisplayMode の値とその意味
DisplayMode.Edit
: 編集可能な状態。DisplayMode.View
: 編集不可で閲覧のみ。DisplayMode.Disabled
: 編集不可で閲覧のみかつ非活性(グレーアウト)。
これらの値(モード)を使って、コントロールの挙動を制御することができます。
トグルコントロールを使った DisplayMode の変更
今回は、1つのトグルを使用して「DisplayMode」を変化させます。手順は以下の通りです。
- 画面にトグルを配置します。
- 対象のコントロールの「DisplayMode」プロパティを選択します。
If
関数を使って、トグルの値に基づいてDisplayMode
を変更します。
トグルがオンの時は、Toggle1.Valueの値がtrueになります。
逆に、トグルがオフの時は、 Toggle1.Valueの値がfalseになります。
If関数を使うことにより、トグルのスイッチ切り替えでIf関数の分岐を制御できるわけです。
参考:If(Toggle1.Value=true,DisplayMode.Edit,DisplayMode.Disabled)- トグルの切り替えにより、DisplayModeのモード切り替えを行えるようになります。
グルーピングを利用してDisplayModeを一括制御する
ただし、上記の方法では一度に1つのコントロールしか変更できません。一つ一つコントロールを選択し、If関数を入れることで対応は可能ですが、10個も20個もコントロールが存在していると、さすがに骨が折れますよね。
このわずらわしさを解消するために、コントロールをグルーピングして一括で変更する方法があります。
- Ctrlキーを押しながら、グルーピングしたいコントロールを選択します。
- 右クリックし、メニューから「グループ」を選択します。
- グループを選択した状態で、同様に「DisplayMode」プロパティを選択します。(重要)
- If 関数を使用して、トグルの値に基づいて「DisplayMode」を変更するようにします。
これにより、グループでまとめているコントロールを1つのトグルで制御することが可能です。
実はグループにまとめなくても、Ctrlキーで複数選択し、 「DisplayMode」プロパティに関数を仕込むことで同じ動作は可能です。ですが、後々関数を微調整(修正)したいとなった場合にまたCtrlキーで選択するよりはグループにまとめていたほうが断然楽になります。
まとめ
ローカル変数などを使用することによって別の制御方法も存在しますが、今回はトグル コントロールの値を直接参照する方法を紹介しました。特殊な要件がない限り、複雑・解読が難しくなるローカル変数(グローバル変数含む)を使用する方法は避けたいですところです。
Power Appsのコントロールを効果的に活用するためには、このグルーピングの方法が非常に役立ちます。ちょっとした豆知識レベルの話となりますが、アプリの運用保守のことを考えると有効活用する技だと思います。
皆さんもお試しください。
コメント