共用方式為


畫布元件屬性

畫布元件可讓製作者建立不同類型的屬性,以在元件和託管該元件的應用程式之間傳遞值或邏輯。 屬性對於建立互動式、可重複使用的元件至關重要。

必要條件

對於新應用程式,此功能預設為啟用。 對於現有應用程式,您需要在應用程式設定中將其打開。

  1. 開啟您的畫布應用程式,以在 Power Apps Studio 中編輯。 選取命令列中選取設定>更新

  2. 新建索引標籤上,找到並開啟增強元件屬性設定。

屬性的類型

製作者可以使用四種類型的屬性。

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

輸入函數允許使用應用程式為元件提供邏輯,類似於函數指標或回調函數。 例如,如果元件處理人名,它可以有一個輸入函數,其引數為 firstnamelastname,並期望傳回字串。 應用程式可以定義函數運算式以傳回 $"{firstname} {lastname}"$"{lastname}, {firstname}"。 該元件呼叫應用程式製作者提供的函數並使用傳回的字串。

動作屬性

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

在先前的滑桿範例中,對於 Data 屬性,您可以新增一個名為 ResetValue 的動作屬性,將滑桿設定回其預設值。 為此使用公式 Reset( Slider1 )。 現在,應用程式中元件的執行個體可以呼叫 Component1.ResetValue() 將滑桿設定回預設值。

事件屬性

許多標準控制項都有常見的事件類型屬性,即輸入行為函數屬性。 按鈕控制項上的 OnSelect 就是一個常見的範例。 元件可以定義事件屬性並像函數一樣呼叫這些事件。 例如,具有按鈕控制項的元件,可以具有名為 OnButtonClicked 的事件屬性。 在按鈕控制項的 OnSelect 中,元件可以呼叫 Component1.OnButtonClicked() 屬性。 使用應用程式可以定義自己的邏輯,以便在按下元件內的按鈕時執行此屬性的動作。

屬性或引數的預設值

如果未設定,預設值將為引數或屬性提供值。 對於某些類型的屬性來說,這是沒有意義的。 在某些情況下,您可以使用預設值來顯示記錄的預期模式。 透過提供預設記錄,您可以將記錄類型設定為預期模式。

例如,名為 AddRecord 屬性將記錄新增至本機集合。 若要顯示預期記錄的模式,請為 AddRecord 屬性的引數新增預設值。