Egenskaper for lerretskomponenter (forhåndsversjon)
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!
- Dette er forhåndsversjonsfunksjon.
- Forhåndsversjonsfunksjonene er ikke ment for produksjonsbruk og kan ha begrenset funksjonalitet. Disse funksjonene er underlagt tilleggsvilkår for bruk og er tilgjengelige før en offisielle utgivelse, slik at kunder kan få tidlig tilgang og gi tilbakemeldinger.
Forutsetning
Før du kan bruke denne funksjonen, må den være aktivert i appinnstillingene.
Åpne lerretsappen for redigering i Power Apps Studio. Velg Innstillinger>Oppdateringer på kommandolinjen.
På Forhåndsvisning-fanen, finn og slå på Forbedrede komponentegenskaper-innstillingene.
Typer egenskaper
Det finnes fire typer egenskaper som er tilgjengelige for beslutningstakere:
- 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.
- 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.
- Handlingsegenskaper: Handlingsegenskaper er en type egenskap som behandler logikk og fungerer som en UtdataFunksjon. Komponenten har således logikken definert, og denne logikken kan bruke kjedede uttrykk og manipulere samlinger eller variabler («funksjonalitet»). Egenskapen av typen
Clear()
Handling kan for eksempel gi funksjonalitet som appen kan kalle opp for å fjerne enkelte verdier fra komponenten, eller egenskapen av typenSave()
Handling som oppdaterer en datakilde. - 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
ellerOnChanged
.
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
.
- I Egenskaper-ruten for komponenten velger du Ny egendefinert egenskap.
- Angi visningsnavnet
Slider Color
i ruten Ny egendefinert egenskap. - Velg Egenskapstypen Data, og velg verdien Inndata for Egenskapsdefinisjon.
- Velg til slutt Farge fra rullegardinlisten Datatype.
- Klikk på Opprett.
Velg deretter Slider1
Glidebryter-kontrollen. 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.
- I Egenskaper-ruten for komponenten velger du Ny egendefinert egenskap.
- Angi visningsnavnet
Slider Value
i ruten Ny egendefinert egenskap. - Velg Egenskapstypen Data, og velg verdien Utdata for Egenskapsdefinisjon.
- Velg til slutt Tall fra rullegardinlisten Datatype.
- 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.
- I Egenskaper-ruten for komponenten klikker du på egenskapen
Slider Value
. - 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.
Notat
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 ga ikke mening for noen 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.