キャンバス コンポーネントのプロパティ (実験的)
キャンバス コンポーネント を使用すると、作成者はさまざまな種類のプロパティを作成して、コンポーネントとコンポーネントをホストするアプリの間で値やロジックを中継できます。 プロパティは、インタラクティブで再利用可能なコンポーネントを作成するために不可欠な部分です。
重要
- これは試験段階の機能です。
- 試験段階の機能は運用環境での使用を想定しておらず、機能が制限されている場合があります。 これらの機能を公式リリースの前に使用できるようにすることで、顧客が一足先にアクセスし、そこからフィードバックを得ることができます。 詳細については: 実験的な機能およびプレビュー機能
- この記事で説明する動作は、_強化されてコンポーネントのプロパティ_の実験的機能が 設定 > 今後の機能 > 実験的 の時のみ利用可能です (既定ではオフ)。
- お客様のフィードバックは弊社にとって非常に重要です。ご意見を Power Apps 実験機能のコミュニティ フォーラム にお寄せください。
プロパティのタイプ
メーカーが利用できるプロパティには次の 4 種類があります:
- データ プロパティ: データ プロパティは、色やテキスト値などのデータに関係します。 データ プロパティは、入力 または 出力 に設定することができ、コンポーネントがアプリにデータを提供するか ( 出力) 、アプリがコンポーネントにデータを提供するか (入力) を示しています。 データ プロパティは、アプリ データ フローに参加する唯一のプロパティです。
- 機能プロパティ: 機能プロパティは、特定のパラメーターに基づいて計算を実行したり、テキストを変更したりするなど、ロジックに関連しています。 機能 プロパティは、入力 または 出力 に設定することができ、コンポーネントがアプリに機能を提供するか ( 出力) 、アプリがコンポーネントに機能を提供するか (入力) を示しています。 機能 プロパティはアプリのデータ フローに参加せず、コンポーネント変数またはアプリ変数を使用できません。
- アクションのプロパティ: アクション プロパティは、ロジックを処理するプロパティの一種で、出力 機能 のような動作をします。 したがって、コンポーネントにはロジックが定義されており、そのロジックは連鎖式を使用し、コレクションまたは変数 (「動作」) を操作できます。 たとえば、
Clear()
アクション プロパティは、コンポーネント内の値を消去するためにアプリが呼び出せる機能を提供したり、データソースを更新するSave()
アクション プロパティを提供したりすることができます。 - イベントのプロパティ: イベント プロパティは、ロジックを伴うプロパティのカテゴリーで、入力 機能 として機能するものです。 このように、アプリはコンポーネントが呼び出すことのできるロジックを定義し、そのロジックは連鎖式を使用したり、コレクションや変数 (「動作」) を操作することができます。 通常、これらのプロパティの名前は、
OnSelect
またはOnChanged
などのイベントを反映しています。
データ プロパティ
データ プロパティの使用法は容易に想像できます。 通常、アプリの標準コントロールには、デフォルト値、テキストの色、サイズなどを設定するためのいくつかのデータ プロパティがあります。 コンポーネント内のコントロールのプロパティをホスティング アプリで利用できるようにする簡単な例を見てみましょう。 この例では、コンポーネントの名前は Component1
です。 コンポーネント内にスライダー コントロールを配置します。 消費アプリから色を指定する 入力 プロパティと、コンポーネントがスライダーの現在の値をアプリに伝える 出力 プロパティを用意します。 次の例では、コンポーネントに Slider
という名前の スライダー コントロールが含まれているものとします。
- コンポーネントのプロパティ ペインで、新規カスタム プロパティ を選択します。
- 新規カスタムプロパティ ペインで、表示名
Slider Color
を入力します。 - プロパティ タイプ を データ とし、プロパティ定義 値を 入力 とします。
- 最後に、データ型 ドロップダウンから 色 を選択します。
- 作成 をクリックします。
続いて、 Slider1
スライダー コントロールを選択します。 ValueFill を検索し、数式バーに Component1.SliderColor
を入力します。 Component1
はコンポーネントの名前、SliderColor
は前回追加したプロパティの名前です。
これで、コンポーネントには消費アプリで設定できる SliderColor
プロパティが追加されました。スライダーの ValueFill プロパティを設定するために、コンポーネントに色を渡します。
また、スライダーの値を使用するアプリに提供したいと考えています。 これを実現するために、出力 プロパティを追加します。
- コンポーネントのプロパティ ペインで、新規カスタム プロパティ を選択します。
- 新規カスタムプロパティ ペインで、表示名
Slider Value
を入力します。 - プロパティ タイプ を データ とし、プロパティ定義 値を 出力 とします。
- 最後に、データ型 ドロップダウンから 数値 を選択します。
- 作成 をクリックします。
データ プロパティが 出力 の場合、コンポーネントは使用するアプリに値を提供します。 この式を設定するには、コンポーネントの新しい SliderValue
プロパティをスライダーの 値 プロパティに設定する必要があります。
- コンポーネントのプロパティ ペインで、
Slider Value
プロパティをクリックします。 - 数式バーで、規定の値の
100
を数式Slider1.Value
に置き換えます。
以上で、コンポーネントの SliderValue
プロパティはコンポーネント内のスライダーの値を反映し、使用するアプリから読み取ることができるようになります。
機能プロパティ
関数のプロパティには、値を返す式が含まれています。 通常、関数は、返す値を計算または決定するために使用するいくつかの引数を受け取ります。
注意
関数プロパティは現在、変数またはコンポーネントの値とプロパティにアクセスできず、データ フローをトリガーできません。 必要な値はすべて引数として渡す必要があります。
出力 関数は、 Power Apps のカスタム関数を作成する簡単な方法です。 このコンポーネントは、いくつかの引数を取り、値を返す式を含む 出力 関数を定義します。 この関数は、 Component1
を呼び出すことで、コンポーネントの名前 ( Component1.MyFunction(arg1, arg2)
など) を使用してアプリ内で使用できます。
入力 関数は、関数ポインターやコールバック関数と同様に、消費側アプリがコンポーネントにロジックを提供する方法です。 たとえば、コンポーネントが人の名前を処理し、引数 firstname
と lastname
を持ち、文字列を尊重する入力関数を持っているとします。 アプリは、$"{firstname} {lastname}"
を返す関数式を定義することも、$"{lastname}, {firstname}"
の式を定義することもできます。 コンポーネントは、アプリの作成者が提供した関数を呼び出して、返された文字列を使用するだけです。
アクション プロパティ
アクション プロパティは、出力 タイプの関数プロパティに似ていますが、副作用の式や式の連鎖が可能です。 コンポーネントには、コンポーネント内のコレクションにレコードを追加する AddRecord
というアクション プロパティや、コンポーネント内の変数やコレクションをクリアする Reset
というアクションを設定することができます。
先ほどの データ プロパティ に使用したスライダーの例では、ResetValue
というアクション プロパティを導入することで、スライダーを既定の値に戻すことができます。 これには式 Reset( Slider1 )
を使用できます。 以上で、アプリ内のコンポーネントのインスタンスは、Component1.ResetValue()
を呼び出してスライダーを既定の値に戻すことができるようになりました。
イベントのプロパティ
標準的なコントロールでは、イベント タイプのプロパティ (実質的に入力動作関数プロパティ) が多く存在します。 ボタン コントロールの OnSelect が最もわかりやすい例です。 コンポーネントでは、任意の数のイベント プロパティを定義し、これらのイベントを関数のように呼び出すことができます。 たとえば、ボタン コントロールを持つコンポーネントには、OnButtonClicked
という名前のイベント プロパティを持つことができます。 ボタン コントロールの OnSelect では、コンポーネントはその Component1.OnButtonClicked()
プロパティを呼び出すことができます。 使用するアプリは、このプロパティに対して独自のロジックを定義し、コンポーネント内のボタンが押されたときに動作するようにできます。
プロパティまたは引数の既定の値
既定の値は、何も設定されていない場合に備えて、引数またはプロパティの既定の値を提供できます。 これは、一部のタイプのプロパティでは意味がありません。 ただし、場合によっては、レコードに予期されるスキーマを提供するために使用できます。 既定のレコードを指定すると、レコードの種類 が予期されるスキーマとして確立されます。
たとえば、AddRecord
という名前の アクション プロパティは、ローカル コレクションに追加されるレコードを受け入れます。 予期されるレコードのスキーマを提供するために、作成者はこの AddRecord
プロパティの引数に既定の値を追加する必要があります。