Share via


Egenskaper for lerretskomponenter (eksperimentell)

Lerretskomponenter gjør at utviklere kan opprette ulike typer egenskaper for å sende verdier eller logikk mellom komponenten og appen som er vert for komponenten. Egenskaper er en avgjørende del av oppretting av interaktive komponenter som kan brukes på nytt.

Viktig

Typer egenskaper

Det finnes fire typer egenskaper som er tilgjengelige for beslutningstakere:

  1. Dataegenskaper: Dataegenskaper gjelder data, for eksempel en farge- eller tekstverdi. En egenskap av typen Data kan settes til Inndata eller Utdata, som angir om komponenten leverer data til appen (Utdata), eller om appen gir data til komponenten (Inndata). Egenskaper av typen Data er de eneste egenskapene i appdataflyten.
  2. Funksjonsegenskaper: Funksjonsegenskaper er knyttet til logikk, for eksempel utføring av en beregning basert på bestemte parametere eller endring av tekst. En egenskap av typen Funksjon kan settes til Inndata eller Utdata, som angir om komponenten leverer en funksjon appen kan kalle opp (Utdata), eller om appen leverer en funksjon som komponenten kan kalle opp (Inndata). Egenskaper av typen Funksjon er ikke i dataflyten til en app og kan ikke bruke komponent- eller appvariabler.
  3. Handlingsegenskaper: Handlingsegenskaper er en type egenskap som behandler logikk og fungerer som en Utdata funksjon. Komponenten har således logikken definert, og denne logikken kan bruke kjedede uttrykk og manipulere samlinger eller variabler («funksjonalitet»). Egenskapen Clear() av typen Handling kan for eksempel gi funksjonalitet som appen kan kalle opp for å fjerne enkelte verdier fra komponenten, eller egenskapen Save() av typen Handling som oppdaterer en datakilde.
  4. Hendelsesegenskaper: Hendelsesegenskaper er en egenskapskategori som omfatter logikk og funksjoner som en Inndata funksjon. Appen definerer logikken, som komponenten kan kalle opp, og denne logikken kan bruke kjedede uttrykk og manipulere samlinger eller variabler («funksjonalitet»). Navnene på disse egenskapene gjenspeiler vanligvis en hendelse, for eksempel OnSelect eller OnChanged.

Dataegenskap

Bruken av en dataegenskap er lett å tenke seg. Standardkontroller i apper har vanligvis flere dataegenskaper, for eksempel for å angi standardverdier, tekstfarge, størrelse og så videre. La oss se på et enkelt eksempel der vi ønsker å gjøre egenskapene for en kontroll i komponenten tilgjengelig for vertsappen. I dette eksemplet kalles komponenten Component1. Vi legger en glidebryterkontroll i komponenten. Vi skal ha en egenskap av typen Inndata for å angi fargen fra appen som brukes, og en egenskap av typen Utdata der komponenten kan fortelle appen hva den gjeldende verdien til glidebryteren er. Eksemplet nedenfor forutsetter at komponenten inneholder en Glidebryter-kontroll kalt Slider.

  1. I Egenskaper-ruten for komponenten velger du Ny egendefinert egenskap.
  2. Angi visningsnavnet Slider Color i ruten Ny egendefinert egenskap.
  3. Velg Egenskapstypen Data, og velg verdien Inndata for Egenskapsdefinisjon.
  4. Velg til slutt Farge fra rullegardinlisten Datatype.
  5. Klikk på Opprett.

Velg deretter Glidebryter-kontrollen Slider1. Finn egenskapen ValueFill, og angi Component1.SliderColor på formellinjen. Component1 refererer til navnet på komponenten, og SliderColor er navnet på egenskapen vi la til tidligere.

Komponenten har nå egenskapen SliderColor som kan angis i appen som er i bruk, for å sende en farge til komponenten og angi egenskapen ValueFill for glidebryteren.

Vi ønsker også å levere verdien for glidebryteren til appen som er i bruk. Vi gjør dette ved å legge til en egenskap av typen Utdata.

  1. I Egenskaper-ruten for komponenten velger du Ny egendefinert egenskap.
  2. Angi visningsnavnet Slider Value i ruten Ny egendefinert egenskap.
  3. Velg Egenskapstypen Data, og velg verdien Utdata for Egenskapsdefinisjon.
  4. Velg til slutt Tall fra rullegardinlisten Datatype.
  5. Klikk på Opprett.

Når en egenskap av typen Data er Utdata, leverer komponenten verdien til appen som er i bruk. For å kunne angi formelen for dette må vi sette den nye egenskapen SliderValue i komponenten til egenskapen Value for glidebryteren.

  1. I Egenskaper-ruten for komponenten klikker du på egenskapen Slider Value.
  2. Erstatt standardverdien 100 på formellinjen med følgende formel: Slider1.Value.

Egenskapen SliderValue for komponenten gjenspeiler nå verdien for glidebryteren i komponenten, som deretter kan leses fra appen som er i bruk.

Funksjonsegenskap

En funksjonsegenskap inneholder et uttrykk som returnerer en verdi. Funksjonen tar vanligvis imot noen argumenter som den bruker til å beregne eller fastsette verdien som skal returneres.

Obs!

Funksjonsegenskaper har for øyeblikket ikke tilgang til variabler eller komponentverdier og -egenskaper, og kan ikke utløse dataflyt. Eventuelle obligatoriske verdier må sendes inn som argumenter.

En Utdata-funksjon er en enkel måte å opprette en egendefinert funksjon for Power Apps på. Komponenten definerer en Utdata-funksjon med et uttrykk som tar imot noen argumenter og returnerer en verdi. Denne funksjonen kan deretter brukes i en app ved hjelp av komponentens navn (for eksempel Component1) ved å kalle opp Component1.MyFunction(arg1, arg2).

En Inndata-funksjon er en måte for en app som er i bruk, å levere logikk til en komponent på, slik som en funksjonspeker eller tilbakekallingsfunksjon. Komponenten håndterer for eksempel personers navn og har en inndatafunksjon med argumentene firstname og lastname og respekterer en streng tilbake. Appen kan definere funksjonsuttrykket som skal returneres, $"{firstname} {lastname}", eller den kan velge å definere et uttrykk for $"{lastname}, {firstname}". Komponenten kan bare kalle opp funksjonen som apputvikleren har angitt, og bruke den returnerte strengen.

Handlingsegenskap

Handlingsegenskaper ligner på funksjonsegenskapene av typen Utdata, men de tillater bivirkningsformler og uttrykkskjeding. En komponent kan ha en handlingsegenskap kalt AddRecord som lar appen legge til en oppføring i en samling i komponenten, eller en Reset-handling som fjerner variabler eller samlinger i komponenten.

I eksemplet med glidebrytereksemplene som ble brukt for Dataegenskap tidligere, kan vi innføre en handlingsegenskap kalt ResetValue for å sette glidebryteren tilbake til standardverdien. Vi kan bruke formelen Reset( Slider1 ) til dette. Forekomster av komponenten i appen kan nå kalle opp Component1.ResetValue() for å sette glidebryteren tilbake til standardverdien.

Hendelsesegenskap

Det finnes mange vanlige egenskaper av typen Hendelse, som faktisk er funksjonsegenskaper for inndatafunksjonalitet, i standardkontroller. OnSelect på knappekontrollen er det mest åpenbare eksemplet. En komponent kan definere et hvilket som helst antall hendelsesegenskaper og kalle opp disse hendelsene som en funksjon. En komponent som har en knappekontroll, kan for eksempel ha en hendelsesegenskap kalt OnButtonClicked. I knappekontrollens OnSelect kan komponenten kalle opp egenskapen Component1.OnButtonClicked(). En app som er i bruk, kan deretter definere sin egen logikk for denne egenskapen og bruke den når knappen i komponenten trykkes.

Standardverdier for egenskaper eller argumenter

Standardverdier kan gi en standardverdi for et argument eller en egenskap hvis ingen er angitt. Dette gir ikke mening for enkelte typer egenskaper. I noen tilfeller kan de imidlertid brukes til å sørge for et forventet skjema for en oppføring. Når en standardoppføring leveres, opprettes en oppføringstype som det forventede skjemaet.

En egenskap av typen Handling kalt AddRecord godtar for eksempel at en oppføring legges til i en lokal samling. En utvikler må legge til en standardverdi for argumentet til egenskapen AddRecord for å kunne levere skjemaet for den forventede oppføringen.