畫布元件屬性 (實驗性)

畫布元件 可讓製作者建立不同類型的屬性,以在元件與託管元件的應用程式之間,傳達值或邏輯。 屬性是建立互動式與可重複使用元件的必要部分。

重要

  • 這是實驗性功能。
  • 實驗性功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。 如需詳細資訊,請參閱實驗性與預覽功能
  • 本文所描述的行為只有在設定 > 即將推出的功能 > 實驗性中的_增強元件屬性_實驗性功能開啟時 (預設為關閉) ,才可使用。
  • 您的意見反應對我們而言至關重要,請告訴我們您對 Power Apps 實驗性功能社群論壇的想法。

屬性的類型

製作者有四種類型的屬性可用:

  1. 資料屬性:資料屬性涉及資料,例如色彩或文字值。 資料屬性可以設定成輸入輸出,這表示是元件提供資料給應用程式 (輸出),或是應用程式提供資料給元件 (輸入)。 資料屬性是唯一參與應用程式資料流程的屬性。
  2. 函數屬性:函數屬性與邏輯有關,例如根據特定參數執行計算或變更文字。 函數屬性可以設定成輸入輸出,這表示是元件提供應用程式可以調用的函數 (輸出),或是應用程式提供元件可以調用的函數 (輸入)。 函數屬性不會參與應用程式的資料流程,也不能使用元件或應用程式變數。
  3. 動作屬性:動作屬性是一種屬性類型,用來處理邏輯與行為,例如輸出 函數。 因此,元件已定義了邏輯,而該邏輯可以使用連結的運算式,並處理集合或變數 (「行為」)。 例如,Clear() 動作屬性能提供應用程式可調用的功能,以清除元件中的某些值,或是可更新資料來源的 Save() 動作屬性。
  4. 事件屬性:事件屬性是一種屬性類別,其中包含邏輯和函數作為輸入 函數。 因此,應用程式會定義元件可以調用的邏輯,而該邏輯可以使用連結的運算式,並處理集合或變數 (「行為」)。 通常這些屬性的名稱會反映事件,例如 OnSelectOnChanged

資料屬性

資料屬性的用法很容易想像。 應用程式中的標準控制項通常具有幾個資料屬性,以設定預設值、文字顏色、大小等。 現在我們來看一個簡單的範例,其中我們想在託管應用程式可以使用的元件中,製作控制項的屬性。 在這個範例中,我們的元件命名為 Component1。 我們會在元件中放入滑桿控制項。 我們會有一個輸入屬性,用來指定使用中應用程式的色彩,以及一個輸出屬性,讓元件可以告訴應用程式滑桿的當前值為何。 下列範例假設您的元件包含一個名為 Slider滑桿控制項。

  1. 在元件的屬性窗格中,選取新自訂屬性
  2. 新自訂屬性窗格上,輸入顯示名稱 Slider Color
  3. 選取資料屬性類型,並選取屬性定義輸入
  4. 最後,從資料類型下拉式選單中,選取色彩
  5. 按一下 建立

接著,選取 Slider1 滑桿控制項。 找出其 ValueFill 屬性,然後在編輯列中輸入 Component1.SliderColorComponent1 是指元件的名稱,而 SliderColor 則是我們之前新增的屬性名稱。

現在,我們的元件有一個可在使用中應用程式設定的 SliderColor 屬性,可將色彩傳送至元件,以設定滑桿的 ValueFill 屬性。

我們也想要將滑桿值提供給使用中的應用程式。 若要完成此步驟,我們會新增一個輸出屬性。

  1. 在元件的屬性窗格中,選取新自訂屬性
  2. 新自訂屬性窗格上,輸入顯示名稱 Slider Value
  3. 選取資料屬性類型,並選取屬性定義輸出
  4. 最後,從資料類型下拉式選單中,選取數目
  5. 按一下 建立

資料屬性是輸出時,元件會將值提供給使用中的應用程式。 若要為此設定公式,我們需要將元件中的新 SliderValue 屬性設定為滑桿的 Value 屬性。

  1. 在元件的屬性窗格中,點選 Slider Value 屬性。
  2. 在公式列中,將 100 的預設值換成下列公式:Slider1.Value

現在,元件的 SliderValue 屬性會反映元件中滑桿的值,然後就可以從使用中的應用程式讀取該元件。

函數屬性

函數屬性包含會傳回值的運算式。 通常,此函數會使用一些用來計算或判斷傳回值的引數。

注意

函數屬性目前無法存取變數或元件值和屬性,也不能觸發資料流程。 任何必要的值都必須以引數的方式來傳遞。

輸出函數能夠簡單建立 Power Apps 的自訂函數。 元件會用具有某些引數並傳回值的運算式來定義輸出函數。 此函數之後可透過調用 Component1.MyFunction(arg1, arg2),在使用元件名稱 (例如 Component1) 的應用程式中使用。

輸入函數是一種讓使用中應用程式提供邏輯給元件的方式,類似於函數指標或回撥函數。 例如,您的元件可能會處理人員的名稱,並有包含引數 firstnamelastname 及重視字串傳回的的輸入函數。 應用程式可以定義要傳回 $"{firstname} {lastname}" 的函數運算式,或選擇定義 $"{lastname}, {firstname}" 的運算式。 元件可以只調用應用程式製作者提供的功能,並使用傳回的字串。

動作屬性

動作屬性與類型輸出的函數屬性類似,但它們允許副作用公式和運算式連結。 元件可以有一個名為 AddRecord 的動作屬性,以讓應用程式可以將記錄新增至元件中的集合,或 有可清除元件中的變數或集合的 Reset 動作。

在先前用於資料屬性的滑桿範例中,我們可以引進名為 ResetValue 的動作屬性,將滑桿設回其預設值。 我們可以對此使用公式 Reset( Slider1 )。 現在,應用程式中的元件執行個體可以調用 Component1.ResetValue(),將滑桿設定回預設值。

事件屬性

在標準控制項中,有許多常用的事件-類型屬性,能有效地輸入行為函數屬性。 按鈕控制項上的 OnSelect 是最明顯的範例。 元件可以定義任何數目的事件屬性,並將這些事件當作函數來調用。 例如,具有按鈕控制項的元件可以有名為 OnButtonClicked 的事件屬性。 在按鈕控制項的 OnSelect 中,元件可以調用其 Component1.OnButtonClicked() 屬性。 然後,使用中的應用程式可以為此屬性定義自己的邏輯,以在按下元件中的按鈕時執行動作。

屬性或引數的預設值

當設定為無時,預設值可以提供引數或屬性的預設值。 這對於某些類型的屬性而言並不合理。 但是,在某些案例中,它們可以用來提供記錄的預期結構描述。 透過提供預設記錄,記錄類型會建立為預期結構描述。

例如,名為 AddRecord動作屬性接受記錄新增至本機集合。 為了提供預期記錄的結構描述,製作者必須為此 AddRecord 屬性的引數新增預設值。