Share via


Propriedades de componentes de tela (experimental)

Os componentes de tela permitem aos criadores criar diferentes tipos de propriedades para transmitem valores ou lógica entre o componente e a aplicação que está a alojar o componente. As propriedades são uma parte essencial da criação de componentes interativos e reutilizáveis.

Importante

Tipos de propriedades

Existem quatro tipos de propriedades disponíveis para os criadores:

  1. Propriedades de dados: as propriedades de dados pertencem a dados, tal como uma cor ou um valor de texto. É possível definir uma propriedade Data como Entrada ou Saída, o que indica se o componente fornece dados à aplicação (Saída) ou se a aplicação fornece dados ao componente (Entrada). As propriedades Data são as únicas propriedades que participam no fluxo de dados da aplicação.
  2. Propriedades da função: as propriedades da função estão relacionadas com a lógica, tal como e execução de um cálculo com base em parâmetros específicos ou alteração de texto. É possível definir uma propriedade Function como Entrada ou Saída, o que indica se o componente fornece uma função à aplicação pode chamar (Saída) ou se a aplicação fornece uma função ao componente pode chamar (Entrada). As propriedadesFunction não participam no fluxo de dados de uma aplicação e não podem utilizar variáveis de componentes ou aplicações.
  3. Propriedades da ação: as propriedades da ação são um tipo de propriedade que aborda a lógica e comporta-se como uma Output Function. Assim, o componente tem a lógica definida, pelo que essa lógica pode utilizar expressões encadeadas e manipular coleções ou variáveis ("comportamento"). Por exemplo, uma propriedade Clear() Action pode fornecer uma funcionalidade que a aplicação pode chamar para limpar alguns valores no componente, ou uma propriedade Save() Action que atualiza uma origem de dados.
  4. Propriedades do evento: as propriedades do evento são uma categoria de propriedade que envolve lógica e funções como uma Input Function. Assim, a aplicação define a lógica, que o componente pode chamar e essa lógica pode utilizar expressões encadeadas e manipular coleções ou variáveis ("comportamento"). Normalmente, os nomes destas propriedades refletem um evento, tal como OnSelect ou OnChanged.

Propriedade de dados

A utilização de uma propriedade de dados é fácil de imaginar. Normalmente, os controlos padrão nas aplicações têm várias propriedades de dados para predefinir os valores, a cor do texto, o tamanho, etc. Vamos ver um exemplo simples onde pretendemos tornar as propriedades de um controlo no componente disponível para a aplicação anfitriã. Neste exemplo, o nome do componente é Component1. Vamos colocar um controlo de deslize dentro do nosso componente. Teremos uma propriedade Input para especificar a cor da aplicação que consome e uma propriedade Output onde o componente pode indicar à aplicação qual o valor atual do controlo de deslize. O exemplo que se segue parte do princípio de que o componente contém um Controlo de deslize denominado Slider.

  1. No painel de propriedade do componente, selecione Nova propriedade personalizada.
  2. No painel Nova propriedade personalizada, introduza o nome a apresentar Slider Color.
  3. Selecione Tipo de propriedade Dados e selecione o valor Definições de propriedade Input.
  4. Finalmente, a partir do menu pendente Tipo de dados, selecione Cor.
  5. Clique em Criar.

Em seguida, selecione o controlo Slider1 Controlo de deslize. Localize a propriedade ValueFill e, na barra de fórmulas, introduza Component1.SliderColor. Component1 refere-se ao nome do nosso componente e SliderColor é o nome da propriedade que adicionámos anteriormente.

Agora o nosso componente tem uma propriedade SliderColor que pode ser definida na aplicação que consome, para transmitir uma cor ao componente, para definir a propriedade ValueFill do controlo de deslize.

Também queremos fornecer o valor do controlo de deslize para a aplicação que consome. Para o conseguir fazer, vamos adicionar uma propriedade Output.

  1. No painel de propriedade do componente, selecione Nova propriedade personalizada.
  2. No painel Nova propriedade personalizada, introduza o nome a apresentar Slider Value.
  3. Selecione Tipo de propriedade Dados e selecione o valor Definições de propriedade Output.
  4. Finalmente, a partir do menu pendente Tipo de dados, selecione Número.
  5. Clique em Criar.

Quando uma propriedade Data é Output, o componente fornece o valor à aplicação que consome. Para definir a fórmula para isto, temos de definir a nova propriedade SliderValue no componente para a propriedade Value do controlo de deslize.

  1. No painel de propriedade do componente, clique na propriedade Slider Value.
  2. Na barra de fórmulas à direita, substitua o valor predefinido de 100 pela seguinte fórmula: Slider1.Value.

Agora, a propriedade SliderValue do componente irá refletir o valor do controlo de deslize dentro do componente, que poderá ser lido depois a partir da aplicação que consome.

Propriedade Function

A propriedade Function contém uma expressão que devolve um valor. Normalmente, a função requer alguns argumentos que utiliza para calcular ou determinar o valor a devolver.

Nota

Atualmente, as propriedades da função não podem aceder a variáveis ou valores de componentes e propriedades, e não podem acionar o fluxo de dados. Quaisquer valores necessários têm de ser transmitidos como argumentos.

Uma função Output é uma forma simples de criar uma função personalizada para o Power Apps. O componente define uma função Output com uma expressão que aceita alguns argumentos e devolve um valor. Esta função pode, em seguida, ser utilizada numa aplicação utilizando o nome do componente (digamos Component1) ao chamar Component1.MyFunction(arg1, arg2).

Uma função Input é uma forma de uma aplicação consumidora fornecer lógica a um componente, semelhante a um apontador de função ou função de chamada de retorno. Por exemplo, o componente pode estar a tratar os nomes das pessoas e ter uma função de entrada com os argumentos firstname e lastname, e respeita uma cadeia de volta. A aplicação poderia definir a expressão da função para devolver $"{firstname} {lastname}" ou pode optar por definir uma expressão para $"{lastname}, {firstname}". O componente pode simplesmente chamar a função fornecida pelo criador de aplicações e utilizar a cadeia devolvida.

Propriedade Action

As propriedades de ação são semelhantes às propriedades de função do tipo Output, mas permitem fórmulas de efeitos laterais e encadeamento de expressões. Um componente pode ter uma propriedade de ação denominada AddRecord que permite que a aplicação adicione um registo a uma coleção dentro do componente, ou uma ação Reset que limpa as variáveis ou coleções dentro do componente.

Nos exemplos do controlo de deslize utilizados para a Propriedade Data anteriormente, podemos introduzir uma propriedade de ação denominada ResetValue para definir o controlo de deslize de voltar para o valor predefinido. Podemos utilizar a fórmula Reset( Slider1 ) para esta situação. Agora, as instâncias do nosso componente na aplicação podem chamar Component1.ResetValue() para definir o controlo de deslize de volta para o valor predefinido.

Propriedade Event

Existem muitas propriedades comuns do tipo Evento, propriedades da função de comportamento de entrada efetivas, em controlos padrão. OnSelect no controlo de botão é o exemplo mais óbvio. Um componente pode definir qualquer número de propriedades de evento e chamar estes eventos como uma função. Por exemplo, um componente com um controlo de botão poderá ter uma propriedade de evento denominada OnButtonClicked. No controlo de botão OnSelect, o componente pode chamar a respetiva propriedade Component1.OnButtonClicked(). Uma aplicação consumidora pode então definir a sua própria lógica para esta propriedade para agir quando o botão dentro do componente é premido.

Valores predefinidos para propriedades ou argumentos

Os valores predefinidos podem fornecer um valor predefinido para um argumento ou propriedade, caso nenhum seja definido. Isto não faz sentido para alguns tipos de propriedades. No entanto, em alguns casos podem ser utilizados para fornecer um esquema esperado para um registo. Ao fornecer um registo predefinido, é estabelecido um tipo de registo como esquema esperado.

Por exemplo, uma propriedade Ação denominada AddRecord aceita que seja adicionado um registo a uma coleção local. Para fornecer o esquema do registo esperado, um criador tem de adicionar um valor predefinido para o argumento desta propriedade AddRecord.