画布组件属性(试验版)

画布组件让开发者可以创建不同类型的属性,以便在组件和托管组件的应用之间传递值或逻辑。 属性是创建可重复使用的交互式组件的重要部分。

重要

属性的类型

开发者可使用的属性有四种:

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

  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 属性的参数添加默认值。