Access zu EDM: INotifyPropertyChanged integrieren

Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!

Im Beitrag “Access zu EDM: Dateien erstellen” haben wir gezeigt, wie Sie mit einer einfachen Access-Prozedur aus einem Access-Datenmodell die für ein Entity Data Model notwendigen Dateien erzeugen können. Das Entity Data Model enthält nur die reinen Eigenschaften, welche die Felder der jeweiligen Tabellen repräsentieren. Manchmal benötigen Sie allerdings mehr als nur diese Eigenschaften – dann soll zum Beispiel die Schnittstelle INotifyPropertyChanged in der Entitätsklasse implementiert sein, um Änderungen in den Eigenschaften schnell in die Anzeige der Daten übermitteln zu können. Wie Sie die Access-Prozedur zum Erstellen des Entity Data Models entsprechend erweitern, zeigen wir Ihnen in diesem Artikel.

Unsere Entitätsklassen, die wir mit der Prozedur EDMDateienErstellen erzeugen, bestehen nur aus den reinen Feldern samt Attributen:

<Table("Anreden")>
Public Partial Class Anrede
     Public Property ID As System.Int32
     <Index(IsUnique:=true)>
     <StringLength(255)>
     <Required>
     Public Property Name As System.String
End Class

Für die Implementierung der INotifyPropertyChanged-Schnittstelle sind einige Erweiterungen notwendig, die wir in den folgenden Abschnitten hinzufügen.

Namespace hinzufügen

Um von der Form der Entitätsklasse, wie wir sie in der bisher verwendeten Prozedur erstellt haben, zu einer Form mit Implementierung der Schnittstelle IPropertyNotifyChanged zu gelangen, müssen wir einige Elemente zur Entitätsklasse hinzufügen. Das erste ist der Namespace, in der diese Schnittstelle definiert wird. Dazu passen wir die Funktion NamespacesFuerEntitaeten an, indem wir dieser einen Parameter namens bolINotifyPropertyChanged hinzufügen. Diesen werten wir in der Funktion aus und fügen, wenn diese den Wert True hat, noch die folgende Zeile hinzu:

Imports System.ComponentModel

In der Funktion sieht das wie folgt aus:

Public Function NamespacesFuerEntitaetenZusammenstellen(Optional bolINotifyPropertyChanged As Boolean) As String
     Dim strNamespaces As String
     If bolINotifyPropertyChanged Then
         strNamespaces = strNamespaces & "Imports System.ComponentModel" & vbCrLf
     End If
     ...
     NamespacesFuerEntitaetenZusammenstellen = strNamespaces
End Function

Implements-Anweisung hinzufügen

Als Nächstes wollen wir der Entitätsklasse die Implements-Anweisung hinzufügen, mit der wir festlegen, dass die Klasse die Schnittstelle INotifyPropertyChanged implementiert. Dieser Teil erfolgt in der Funktion EntityDataModelZusammenstellen, die wir von der Hauptprozedur EDMDateienErstellen aus aufrufen. Dazu fügen wir dem Aufruf die Übergabe des Parameters bolINotifyPropertyChanged hinzu:

 

Schreibe einen Kommentar