© deomis/Shutterstock.com
Teil 2: Eingabevalidierung in WinUI 3 - die Rückkehr von INotifyDataErrorInfo

Benutzereingaben validieren


Für das Entwickeln von datengetriebenen Enterprise-Applikationen ist das Validieren von Benutzereingaben eine Kernfunktionalität, die in der Universal Windows Platform (UWP) bisher fehlt. In der UWP muss eine Validierung händisch gebaut werden, sie wird nicht wie in WPF durch das Framework unterstützt. In WinUI ändert sich das. Das Konzept des aus der WPF bekannten INotifyDataErrorInfo-Interface kommt auch bei WinUI 3 zum Validieren von Benutzereingaben zum Einsatz. Dieser Artikel gibt einen Einblick, wie die Validierung damit funktioniert.

Die Windows Presentation Foundation (WPF) hat verschiedene Mechanismen, um Benutzereingaben zu validieren:

  • Exceptions

  • das IDataErrorInfo-Interface

  • das INotifyDataErrorInfo-Interface

Das INotifyDataErrorInfo-Interface ist die modernste Variante, die mit dem .NET Framework 4.5 eingeführt wurde. Das Interface bietet gegenüber den anderen Varianten einige Vorteile:

  1. Pro Eigenschaft lässt sich nicht nur ein einziger Validierungsfehler festlegen, sondern beliebig viele Validierungsfehler.

  2. Ein Validierungsfehler muss nicht zwingend ein String sein, es kann sich dabei auch um ein komplexes Objekt handeln. Dem Entwickler stehen somit alle Türen offen. Es lässt sich eine beliebige Fehlerklasse erstellen und verwenden.

  3. Validierungsfehler können auch asynchron ermittelt und im User Interface ausgegeben werden. Das funktioniert mit Hilfe des ErrorsChanged Events. Wird es ausgelöst, zeigt das UI die entsprechenden Validierungsfehler an. Damit lässt sich beispielsweise bei der Registrierung eines Benutzers asynchron prüfen, ob der Benutzername im Backend schon existiert.

All diese Vorteile machen das INotifyDataErrorInfo-Interface zur besten Wahl und zum Standard, wenn es in einer WPF-Anwendung zur Validierung von Benutzereingaben kommt. Aus diesem Grund haben sich die Entwickler bei Microsoft auch dazu entschieden, das INotifyDataErrorInfo-Interface in WinUI 3 zur Validierung zu unterstützen, nachdem auf GitHub [1] von einem Communitymitgl...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang