2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

カスタムコンポーネントの動作プロパティを試す

Last updated at Posted at 2021-02-17

実験的な機能、拡張コンポーネントのプロパティを使ってみた。

ナニコレ

  • ファイル→設定→詳細設定→実験的な機能→拡張コンポーネントのプロパティで試せる機能。
  • 何これと思っても調べてみましたが検索しても出てこず、日本語もよく分からないので英語にして確認。
  • カスタムコンポーネントのプロパティとして、ユーザーが定義した処理(関数など)をセットできるようだ。
  • ダイアログコンポーネントなどの作成が捗りそう。
    image.png

以前ideasで見かけたこれの実装かな。
https://powerusers.microsoft.com/t5/Power-Apps-Ideas/Actions-on-Components/idi-p/238399#comments

追記:後日公式ブログに上がってました。
https://powerapps.microsoft.com/ja-jp/blog/enhanced-component-properties/

使い方

・まず適当なコンポーネントを作成
・コンポーネントにプロパティを追加し、プロパティタイプを「動作」にする
・データ型を選択???とあるけど気にせずテキストで
image.png

・コンポーネント内にボタンを配置し、OnSelectで、コンポーネント名.動作プロパティ名()を記述
image.png
・コンポーネントを実際の画面に配置して、先程の動作プロパティにSubmitForm(Form1);Navigate(HomeScreen);など任意の処理を記述。
・ボタンをクリックすると、プロパティに設定した処理が実行される。
・カスタムイベントのようなものですね。
image.png

使用例

確認ダイアログコンポーネント
・はい、いいえをクリックしたときの動作を呼び出し側から設定できます。
YesNoDialog.gif

ハンバーガーメニューコンポーネント
・メニューのアイコンやタイトルは入力プロパティ:テーブルで設定し、ギャラリーコントロールでリスト表示。
・メニューアイテムをクリックしたときの動作は、動作プロパティでFunc1、Func2と一つずつ設定。(イケてない・・)
→パラメータを使用して、呼び出し側で押されたメニュー番号を受け取り処理を分岐してもいいですね。
SideNavBar.gif
・他にも、ヘッダーメニューの編集、保存、キャンセル、更新ボタンをコンポーネント化してレイアウトを共通化するなども可能になります。

パラメータについて

・プロパティ設定でパラメータを設定すると、()内にパラメータを渡すことができ、呼び出し側でパラメータを受け取って処理をすることもできるようです。

[①パラメータの設定]
image.png
[②コンポーネント側のボタン]
image.png
[③呼び出し側の動作プロパティの関数]
image.png

出力プロパティのパラメータ

  • 更に、出力プロパティにもパラメータを設定できるようです。
  • これはクラスメソッドのようなもので、コンポーネント名.出力プロパティ名(param1,param2)で実行し、コンポーネント側で引数としてパラメータを受け取り、自作関数を実装できるとのこと。
  • ただし非動作プロパティであるため、内部にアクションを記述することはできず、一行目の処理で値を返す必要があり少し勝手が違います・・・

    ※;で区切って複数の処理は書けず、IfやForAllなどの結果処理部分で値を返す必要がある。
  • returnを使って戻り値を任意のタイミングで値を返せるようになればよいのですが・・
  • 計算処理などでは使い道がありそうです。
    本実装が待ち遠しいですね。
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?