画布组件属性(试验版)
画布组件让开发者可以创建不同类型的属性,以便在组件和托管组件的应用之间传递值或逻辑。 属性是创建可重复使用的交互式组件的重要部分。
重要
- 这是一项试验功能。
- 试验功能不适合生产使用且功能可能受限。 这些功能在正式发布之前推出,以便客户可以提前使用并提供反馈。 详细信息:试验功能和预览功能
- 本文介绍的行为仅在设置 > 即将推出的功能 > 试验中的_增强型组件属性_试验功能打开(默认关闭)时才可用。
- 您的反馈对我们非常重要 - 请通过 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
属性的参数添加默认值。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈