WPF UserControl Genetische Konvertierung: Das Konvertierungsproblem von abgeleiteten Generika in die Basisklassengenerika
In WPF wird in der Basisklasse in der Regel mehrere UserControl die gleichen Merkmale aufweist und die Vorfälle im Code versteckt des abgeleiteten Usercontrols behandelt. In einigen Fällen kann jedoch bei dem Versuch, Datacontext in den genetischen Typ in der Basisklasse Usercontrol umzuwandeln,
Ausnahme auftreten.
InvalidCastException
Das abnormale Erscheinungsbild liegt daran, dass der Typ des DataContext abgeleitet ist (z. B.
), und Sie versuchen, ihn in den Basistyp zu konvertieren (BaseViewModel<wire>
). Dies liegt daran, dass nicht in BaseViewModel<connector>
konvertiert werden kann. BaseViewModel
Generic<派生类型>
In konzeptioneller Sicht ähnelt dies der Transformation Generic<基类型>
in
ein Schaf hinzufügen, aber dies wird die Integrität von List<wolf>
zerstören, was zu Inkonsistenz führen kann. List<animal>
List<animal>
Die einzige Ausnahme besteht darin, die Konzepte wie Schnittstellen und Collaborative und Wechselrichter zu verwenden. Dies gilt jedoch nur für die Schnittstelle, nicht für Klassen. Daher können Sie in Ihrer Szene List<wolf>
in
Generic<派生类型>
Das obige ist der detaillierte Inhalt vonWarum kann ich in WPF UserControls nicht generisches an generische Werbung werfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!