Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der Typ INotifyPropertyChanged
ist ein Attribut, das das Einfügen von MVVM-Unterstützungscode in vorhandene Typen ermöglicht. Zusammen mit anderen zugehörigen Attributen (ObservableObject
und ObservableRecipient
), dient es dazu, Fachkräfte in der Entwicklung in Fällen zu unterstützen, in denen dieselbe Funktionalität von diesen Typen benötigt wird, die Zieltypen aber bereits von einem anderen Typ implementiert wurden. Da C# keine Mehrfachvererbung zulässt, können diese Attribute stattdessen verwendet werden, damit der MVVM-Toolkit-Generator denselben Code direkt in diese Typen einfügt und auf diese Weise diese Einschränkung umgeht.
Hinweis
Damit das funktioniert, müssen sich annotierte Typen in einer partiellen Klasse befinden. Wenn der Typ geschachtelt ist, müssen auch alle Typen in der Deklarationssyntaxstruktur als partiell annotiert werden. Wenn dies nicht erfolgt, führt dies zu Kompilierungsfehlern, da der Generator keine andere partielle Deklaration dieses Typs mit dem angeforderten zusätzlichen Code generieren kann.
Hinweis
Diese Attribute sollen nur in Fällen verwendet werden, in denen die Zieltypen einfach nicht von den entsprechenden Typen erben können (z. B. von ObservableObject
). Sofern möglich, wird die Vererbung empfohlen, da dadurch die Größe der Binärdatei verringert wird, weil kein doppelter Code in der endgültigen Assembly erstellt wird.
Plattform-APIs:
INotifyPropertyChanged
,ObservableObject
,ObservableRecipient
So werden sie verwendet
Die Verwendung eines dieser Attribute ist recht einfach: Sie fügen sie einfach einer partiellen Klasse hinzu, und der gesamte Code aus den entsprechenden Typen wird automatisch in diesem Typ generiert. Betrachten Sie beispielsweise Folgendes:
[INotifyPropertyChanged]
public partial class MyViewModel : SomeOtherType
{
}
Dadurch wird eine vollständige INotifyPropertyChanged
-Implementierung im Typ MyViewModel
generiert, einschließlich zusätzlicher Hilfsprogramme (z. B. SetProperty
), die verwendet werden können, um den Code weniger ausführlich zu gestalten. Es folgt eine kurze Zusammenfassung der verschiedenen Attribute:
INotifyPropertyChanged
: Implementiert die Schnittstelle und fügt Hilfsmethoden zum Festlegen von Eigenschaften und Auslösen der Ereignisse hinzu.ObservableObject
: Fügt den gesamten Code aus dem TypObservableObject
hinzu. Das ist konzeptuell gleichbedeutend mitINotifyPropertyChanged
, wobei der Hauptunterschied darin besteht, dass auchINotifyPropertyChanging
implementiert wird.ObservableRecipient
: Fügt den gesamten Code aus dem TypObservableRecipient
hinzu. Dies kann insbesondere zu einem Typ hinzugefügt werden, der vonObservableValidator
erbt, um die beiden Typen zu kombinieren.
Beispiele
- Sehen Sie sich die Beispiel-App (für mehrere Benutzeroberflächen-Frameworks) an, um das MVVM-Toolkit in Aktion zu sehen.
- Weitere Beispiele finden Sie auch in den Komponententests.