Nun habe ich eine Steuerung, die von UserControl (Ansicht) erbt, und ich verwende sie so wie du eine UserControl (eine Basisklasse) verwendest. Hier liegt das Problem: Wenn ich das mache, bekomme ich verschiedene Meldungen zur Laufzeit und im Designmodus. Im Designmodus erhalte ich Ansicht und zur Laufzeit erhalte ich den Klassennamen der XAML-Datei, die die Ansicht erbt...
Wie kann ich den vererbenden Klassentyp im Designmodus anstelle der Basisklasse erhalten?
Hier kommt etwas Code:
Zuerst haben wir die Ansichtsklasse
public class View : UserControl
{
public override void OnApplyTemplate()
{
MessageBox.Show(this.GetType().ToString());
base.OnApplyTemplate();
}
}
Dann haben wir eine XAML-Datei:
Wenn du nun "WpfApplication2.Test" in VisualStudio 2010 kompilierst und öffnest, erhältst du eine Meldung, die "WpfApplication2.View" sagt..
Aber wenn du die Test Steuerung in dein MainWindow platzierst und auf Ausführen (F5) drückst, erhältst du "WpfApplication2.Test".. Was ich möchte, ist die gleiche Antwort im Designmodus wie zur Laufzeit zu haben...