PRISM: BindableBase und Code-Snippet für eine BindableBase-Eigenschaft

Code Snippets (dt. = Codeausschnitt) sind einfache Vorlagen/Templates, die in Visual Studio via Shortcut eingefügt werden können. Solche Code snippets enthalten normalerweise häufig verwendete Codeblöcke , wie z.B. if-else- oder using-Blöcke, können aber auch zum Einfügen von kompletten Klassen oder Methoden verwendet werden. Der folgende Artikel zeigt ein Code Snippet um eine Prism-Eigenschaft via Shortcut zu erzeugen.

In WPF-Anwendungen ist die INotifyPropertyChanged-Schnittstelle von zentraler Bedeutung. Diese Schnittstelle hilft bei der Benachrichtigung anderer Instanzen bzgl. veränderter Properties. Besonders in WPF hilft diese Schnittstelle bei der Trennung zwischen Logik und UI, da erst durch die Implementierung dieser Schnittstelle die Anzeige bei Änderungen aktualisiert wird. Um diese Schnittstelle jetzt nicht immer wieder neu implementieren zu müssen wird die Implementierung oft in eine eigene Basisklasse ausgelagert. So auch in der Prism-Bibliothek. Dort gibt es eine abstrakte Klasse namens BindableBase, die in etwa den folgenden Aufbau hat:

Leitet man seine Klassen (Model- oder ViewModel-Klassen) von dieser Basisklasse ab, genügt es im Setter der jeweiligen Eigenschaft die SetProperty-Methode aufzurufen. Das sieht dann ungefähr so aus:

Die SetProperty-Methode prüft dann, ob sich die Eigenschaft geändert und löst dann gegenbenfalls das PropertyChanged-Event aus, so dass das UI angewiesen wird eine Aktualisierung durchzuführen. Eine weitere sehr nützliche Funktion der BindbaleBase-Klasse ist, dass man auch für andere Eigenschaften innerhalb der Klasse das PropertyChanged-Ereignis auslösen kann. Das ist vor allem dann nützlich, wenn man konkatenierte Werte (z.B. Vor- und Nachname einer Person) aktualisieren möchte. Dazu mal das folgende Beispiel:

Die Erstellung einer solchen Eigenschaft mit der SetProperty-Methode kann ziemlich zeitaufwändig werden, je nachdem wie viele Eigenschaften erstellt werden sollen. Für die Erstellung einer solchen Eigenschaft kann das folgende Snippet verwendet werden:

Das Snippet gibt es auch am Ende des Artikels zum Download.

Installation des Snippets

Innerhalb von Visual Studio gibt es den Code Snippet-Manager, der wie folgt erreicht werden kann:

code_snippet_manager_01

Über den aufgehenden Dialog kann das Snippet dann über den Import-Button geladen werden:

code_snippet_manager_02

Das Code snippet kann dann einfach über IntelliSense erreicht werden:

code_snippet_manager_03

Danach einfach 2 x die TAB-Taste und die Eigenschaft wir angelegt. Änderungen am Datentyps werden dabei natürlich auch berücksichtigt und automatisch aktualisiert:

code_snippet_manager_04

Hinweis:

Eine Übersicht über die standardmäßig ausgelieferten Visual Studio Code-Snippets ist hier zu finden: Visual C# Code Snippets

[wpdm_package id=’1037′]

Fork me on GitHub