画布组件属性(试验版)
画布组件让开发者可以创建不同类型的属性,以便在组件和托管组件的应用之间传递值或逻辑。 属性是创建可重复使用的交互式组件的重要部分。
重要
- 这是一项试验功能。
- 试验功能不适合生产使用且功能可能受限。 这些功能在正式发布之前推出,以便客户可以提前使用并提供反馈。 详细信息:试验功能和预览功能
- 本文介绍的行为仅在设置 > 即将推出的功能 > 试验中的_增强型组件属性_试验功能打开(默认关闭)时才可用。
- 您的反馈对我们非常重要 - 请通过 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
)通过调用 Component1.MyFunction(arg1, arg2)
使用该函数。
所使用应用可使用输入函数为组件提供逻辑,就像函数指针或回调函数。 例如,您的组件可能需要处理人名,并且具有一个变量为 firstname
和 lastname
且采用字符串最后一位的输入函数。 该应用可以定义函数表达式来返回 $"{firstname} {lastname}"
,也可以选择为 $"{lastname}, {firstname}"
定义表达式。 组件只能调用应用开发者已提供的函数,以及使用返回的字符串。
操作属性
操作属性类似类型为输出的函数属性,但是允许副作用公式和表达式链接。 组件可以具有名为 AddRecord
的操作属性,该属性允许应用向组件内的集合添加记录,或者具有 Reset
操作,用于清除组件中的变量或集合。
在前面用于数据属性的滑块示例中,我们可以引入一个名称为 ResetValue
的操作属性来将滑块重新设置为其默认值。 为此,我们可以使用公式 Reset( Slider1 )
。 现在,我们在应用中的组件实例可以调用 Component1.ResetValue()
以将滑块重新设置为其默认值。
事件属性
标准控件中有大量常用的事件类型属性,实际上是输入行为函数属性。 最明显的示例是按钮控件上的 OnSelect。 图个组件可以定义任意数量的事件属性,并将这些事件就像函数一样调用。 例如,具有按钮控件的组件可以具有名为 OnButtonClicked
的事件属性。 在按钮控件的 OnSelect 中,组件可以调用其 Component1.OnButtonClicked()
属性。 然后,所使用应用可以为此属性定义自己的逻辑,以便在按下组件中的按钮时实施。
属性或参数的默认值
如果没有为参数或属性设置任何值,默认值可以为其提供默认值。 这一点对于某些类型的属性没有意义。 但是,在某些情况下,它们可用于为记录提供预期架构。 通过提供默认记录,记录类型作为预期架构建立。
例如,名为 AddRecord
的操作属性接受要添加到本地集合的记录。 若要提供预期记录的架构,开发者必须 为此 AddRecord
属性的参数添加默认值。