畫布元件屬性 (實驗性)
畫布元件 可讓製作者建立不同類型的屬性,以在元件與託管元件的應用程式之間,傳達值或邏輯。 屬性是建立互動式與可重複使用元件的必要部分。
重要
- 這是實驗性功能。
- 實驗性功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。 如需詳細資訊,請參閱實驗性與預覽功能
- 本文所描述的行為只有在設定 > 即將推出的功能 > 實驗性中的_增強元件屬性_實驗性功能開啟時 (預設為關閉) ,才可使用。
- 您的意見反應對我們而言至關重要,請告訴我們您對 Power Apps 實驗性功能社群論壇的想法。
屬性的類型
製作者有四種類型的屬性可用:
- 資料屬性:資料屬性涉及資料,例如色彩或文字值。 資料屬性可以設定成輸入或輸出,這表示是元件提供資料給應用程式 (輸出),或是應用程式提供資料給元件 (輸入)。 資料屬性是唯一參與應用程式資料流程的屬性。
- 函數屬性:函數屬性與邏輯有關,例如根據特定參數執行計算或變更文字。 函數屬性可以設定成輸入或輸出,這表示是元件提供應用程式可以調用的函數 (輸出),或是應用程式提供元件可以調用的函數 (輸入)。 函數屬性不會參與應用程式的資料流程,也不能使用元件或應用程式變數。
- 動作屬性:動作屬性是一種屬性類型,用來處理邏輯與行為,例如輸出 函數。 因此,元件已定義了邏輯,而該邏輯可以使用連結的運算式,並處理集合或變數 (「行為」)。 例如,
Clear()
動作屬性能提供應用程式可調用的功能,以清除元件中的某些值,或是可更新資料來源的Save()
動作屬性。 - 事件屬性:事件屬性是一種屬性類別,其中包含邏輯和函數作為輸入 函數。 因此,應用程式會定義元件可以調用的邏輯,而該邏輯可以使用連結的運算式,並處理集合或變數 (「行為」)。 通常這些屬性的名稱會反映事件,例如
OnSelect
或OnChanged
。
資料屬性
資料屬性的用法很容易想像。 應用程式中的標準控制項通常具有幾個資料屬性,以設定預設值、文字顏色、大小等。 現在我們來看一個簡單的範例,其中我們想在託管應用程式可以使用的元件中,製作控制項的屬性。 在這個範例中,我們的元件命名為 Component1
。 我們會在元件中放入滑桿控制項。 我們會有一個輸入屬性,用來指定使用中應用程式的色彩,以及一個輸出屬性,讓元件可以告訴應用程式滑桿的當前值為何。 下列範例假設您的元件包含一個名為 Slider
的滑桿控制項。
- 在元件的屬性窗格中,選取新自訂屬性。
- 在新自訂屬性窗格上,輸入顯示名稱
Slider Color
。 - 選取資料的屬性類型,並選取屬性定義值輸入。
- 最後,從資料類型下拉式選單中,選取色彩。
- 按一下 建立。
接著,選取 Slider1
滑桿控制項。 找出其 ValueFill 屬性,然後在編輯列中輸入 Component1.SliderColor
。 Component1
是指元件的名稱,而 SliderColor
則是我們之前新增的屬性名稱。
現在,我們的元件有一個可在使用中應用程式設定的 SliderColor
屬性,可將色彩傳送至元件,以設定滑桿的 ValueFill 屬性。
我們也想要將滑桿值提供給使用中的應用程式。 若要完成此步驟,我們會新增一個輸出屬性。
- 在元件的屬性窗格中,選取新自訂屬性。
- 在新自訂屬性窗格上,輸入顯示名稱
Slider Value
。 - 選取資料的屬性類型,並選取屬性定義值輸出。
- 最後,從資料類型下拉式選單中,選取數目。
- 按一下 建立。
當資料屬性是輸出時,元件會將值提供給使用中的應用程式。 若要為此設定公式,我們需要將元件中的新 SliderValue
屬性設定為滑桿的 Value 屬性。
- 在元件的屬性窗格中,點選
Slider Value
屬性。 - 在公式列中,將
100
的預設值換成下列公式:Slider1.Value
。
現在,元件的 SliderValue
屬性會反映元件中滑桿的值,然後就可以從使用中的應用程式讀取該元件。
函數屬性
函數屬性包含會傳回值的運算式。 通常,此函數會使用一些用來計算或判斷傳回值的引數。
注意
函數屬性目前無法存取變數或元件值和屬性,也不能觸發資料流程。 任何必要的值都必須以引數的方式來傳遞。
輸出函數能夠簡單建立 Power Apps 的自訂函數。 元件會用具有某些引數並傳回值的運算式來定義輸出函數。 此函數之後可透過調用 Component1.MyFunction(arg1, arg2)
,在使用元件名稱 (例如 Component1
) 的應用程式中使用。
輸入函數是一種讓使用中應用程式提供邏輯給元件的方式,類似於函數指標或回撥函數。 例如,您的元件可能會處理人員的名稱,並有包含引數 firstname
和 lastname
及重視字串傳回的的輸入函數。 應用程式可以定義要傳回 $"{firstname} {lastname}"
的函數運算式,或選擇定義 $"{lastname}, {firstname}"
的運算式。 元件可以只調用應用程式製作者提供的功能,並使用傳回的字串。
動作屬性
動作屬性與類型輸出的函數屬性類似,但它們允許副作用公式和運算式連結。 元件可以有一個名為 AddRecord
的動作屬性,以讓應用程式可以將記錄新增至元件中的集合,或 有可清除元件中的變數或集合的 Reset
動作。
在先前用於資料屬性的滑桿範例中,我們可以引進名為 ResetValue
的動作屬性,將滑桿設回其預設值。 我們可以對此使用公式 Reset( Slider1 )
。 現在,應用程式中的元件執行個體可以調用 Component1.ResetValue()
,將滑桿設定回預設值。
事件屬性
在標準控制項中,有許多常用的事件-類型屬性,能有效地輸入行為函數屬性。 按鈕控制項上的 OnSelect 是最明顯的範例。 元件可以定義任何數目的事件屬性,並將這些事件當作函數來調用。 例如,具有按鈕控制項的元件可以有名為 OnButtonClicked
的事件屬性。 在按鈕控制項的 OnSelect 中,元件可以調用其 Component1.OnButtonClicked()
屬性。 然後,使用中的應用程式可以為此屬性定義自己的邏輯,以在按下元件中的按鈕時執行動作。
屬性或引數的預設值
當設定為無時,預設值可以提供引數或屬性的預設值。 這對於某些類型的屬性而言並不合理。 但是,在某些案例中,它們可以用來提供記錄的預期結構描述。 透過提供預設記錄,記錄類型會建立為預期結構描述。
例如,名為 AddRecord
的動作屬性接受記錄新增至本機集合。 為了提供預期記錄的結構描述,製作者必須為此 AddRecord
屬性的引數新增預設值。