Komponenten
Eine Universal-App besteht aus Komponenten. Beim Erstellen einer App können Sie einfach die PowerShell-Cmdlets innerhalb Ihres App-Skripts aufrufen, um eine neue Komponente zu erstellen.
New-UDApp -Title 'Dashboard' -Content {
New-UDTypography -Text 'Hello, world!'
}Komponententypen
Es gibt über 50 Komponenten, die Sie in Ihren Apps verwenden können. Zu den häufig verwendeten gehören:
Feedback
Navigation
Oberflächen
Event-Handler
Viele Komponenten stellen Event-Handler bereit, um interaktive Funktionalität zu ermöglichen. Dies können Ereignisse wie Klicks, Validierung, Rendering und mehr sein. Die Interaktivität eines Event-Handlers wird mithilfe von PowerShell-Skriptblöcken implementiert.
Das folgende Beispiel erstellt beispielsweise eine Schaltfläche, die angeklickt werden kann und daraufhin einen Toast anzeigt.
Innerhalb von Event-Handlern können Sie jedes gültige PowerShell-Skript ausführen. Das bedeutet, dass Sie mit Cmdlets außerhalb des PSU-Moduls interagieren können, wie zum Beispiel ActiveDirectory oder Microsoft.Graph.
Ereignisdaten
Jeder Event-Handler kann seine eigenen Ereignisdaten bereitstellen. Komponenten wie Tabellen, Formulare und Textfelder geben entsprechende Daten über den Zustand der Komponente zurück. Dies können die aktuellen Daten einer Zeile in der Tabelle, die Werte eines Formulars oder der Text eines Textfeldes sein.
Sie können auf die Ereignisdaten über die Variable $EventData zugreifen. Diese Variable unterscheidet sich je nach Typ der verwendeten Komponente. Zum Beispiel gibt das -OnChange-Ereignis von New-UDTextbox eine Zeichenfolge in $EventData zurück.
Bei anderen Steuerelementen ist dies anders. Ein Formular gibt beispielsweise ein Objekt zurück, das Eigenschaften über den Zustand des Formulars enthält.
Sie können auch über die Variable $Body auf die rohe Zeichenfolge zugreifen, die dem Event-Handler bereitgestellt wird. Diese enthält eine JSON-Zeichenfolge, die $EventData definiert.
Zusätzlich zur Variable $EventData können Sie auch die Variable $PSUItem verwenden, um in bestimmten Steuerelementen, die mehrere Datentypen zulassen, weitere Informationen zu erhalten. Den PSUItem-Datentyp finden Sie unten.
Scoping
Das Verständnis des Event-Handler-Scopings ist wichtig, um sicherzustellen, dass sich Ihre Apps wie erwartet verhalten. PowerShell Universal ist darauf ausgelegt, Event-Handlern alle im Scope befindlichen Variablen effektiv bereitzustellen.
Das Folgende wäre beispielsweise eine natürliche Verwendung einer Variable in einem herkömmlichen PowerShell-Skript und funktioniert auch in Event-Handlern.
Die Verwendung der Scopes $Global: und $Script: funktioniert nicht wie erwartet, da jeder Event-Handler in seinem eigenen Runspace ausgeführt wird. PSU verschiebt Variablen während der Verarbeitung manuell, ändert jedoch keine Variablen in anderen Scopes.
Sie sollten benutzerdefinierte Scopes verwenden, um über Event-Handler hinweg auf Variablen zuzugreifen.
Außerdem sollten Sie es vermeiden, $EventData innerhalb verschachtelter Event-Handler zu vererben. Auch wenn einige Komponenten keine eigenen Ereignisdaten definieren, sollte davon ausgegangen werden, dass die Ereignisdaten in der verschachtelten Komponente überschrieben werden.
Um dieses Problem zu vermeiden, sollten Sie Daten in einer anderen Variable speichern, die an den Event-Handler-Scope der verschachtelten Komponente gesendet wird.
Siehe auch
Zuletzt aktualisiert
War das hilfreich?