画布组件属性

画布组件允许开发者创建不同类型的属性,用于在组件与托管该组件的应用程序之间传递值或逻辑。 属性对于构建交互式、可重用的组件至关重要。

先决条件

此功能对新应用默认启用。 对于现有应用,您需要在应用设置中将其打开。

  1. 在 Power Apps Studio 中打开您的画布应用程序进行编辑。 在命令栏上,选择设置>更新

  2. 新建选项卡中,找到并启用增强组件属性设置。

属性的类型

开发者可使用四种类型的属性。

  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 属性设置为滑块的属性。

  1. 在组件的属性窗格中,单击 Slider Value 属性。
  2. 在编辑栏中,将 100 的默认值替换为以下公式:Slider1.Value

现在,组件的 SliderValue 属性反映了组件内部滑块的值,消费应用程序可以读取该值。

函数属性

函数属性包含用于返回值的表达式。 通常,该函数采用用于计算要返回的值的参数。

备注

函数属性目前不能访问变量或组件值和属性,因此不能触发数据流。 所有必需值都必须以参数的形式传递。

输出函数可以简单地为 Power Apps 创建自定义函数。 组件定义一个输出函数,该函数包含一个表达式,用于采用一些变量并返回值。 然后,可在应用中使用组件的名称(如 Component1)通过调用 Component1.MyFunction(arg1, arg2) 使用该函数。

输入函数允许消费应用程序向组件提供逻辑,类似于函数指针或回调函数。 例如,如果组件处理人员姓名,它可以拥有一个带有参数 firstnamelastname 的输入函数,并期望返回一个字符串。 应用程序可以定义函数表达式以返回 $"{firstname} {lastname}"$"{lastname}, {firstname}"。 该组件调用应用制作者提供的函数,并使用返回的字符串。

操作属性

操作属性与类型为输出的函数属性类似,但允许使用副作用公式和表达式链。 组件可以拥有一个名为 AddRecord 的操作属性,允许应用程序向组件内部的集合中添加记录,或一个 Reset 操作属性,用于清除组件内部的变量或集合。

在之前数据属性的滑块示例中,您可以添加一个名为 ResetValue 的动作属性,用于将滑块重置为默认值。 为此使用公式 Reset( Slider1 )。 现在,应用程序中的组件实例可以调用 Component1.ResetValue() 将滑块重置为默认值。

事件属性

许多标准控件具有常见的事件类型属性,这些是输入行为函数属性。 按钮控件上的 OnSelect 是一个常见示例。 组件可以定义事件属性,并像函数一样调用这些事件。 例如,包含按钮控件的组件可以拥有名为 OnButtonClicked 的事件属性。 在按钮控件的 OnSelect 中,组件可以调用其 Component1.OnButtonClicked() 属性。 使用应用可以定义自己的逻辑,以便此属性在按下组件内部的按钮时起作用。

属性或参数的默认值

如果未设置任何参数或属性,则默认值为参数或属性提供值。 这对于某些类型的属性没有意义。 在某些情况下,您可以使用默认值来显示记录的预期架构。 通过提供默认记录,您可以将记录类型设置为预期架构。

例如,名为 AddRecord操作属性用于将记录添加到本地集合。 要显示预期记录的模式,请为 AddRecord 属性的参数添加默认值。