He decidido que todas mis páginas WPF necesitan registrar un evento enrutado. En lugar de incluir¿Cómo creo una página base en WPF?
public static readonly RoutedEvent MyEvent= EventManager.RegisterRoutedEvent("MyEvent", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(BasePage));
En cada página, decidí crear una página base (denominada BasePage). Puse la línea de código anterior en mi página base y luego cambié algunas de mis otras páginas para derivarme de BasePage. No puedo conseguir más allá de este error:
Error 12 'CTS.iDocV7.BasePage' cannot be the root of a XAML file because it was defined using XAML. Line 1 Position 22. C:\Work\iDoc7\CTS.iDocV7\UI\Quality\QualityControlQueuePage.xaml 1 22 CTS.iDocV7
¿Alguien sabe cómo crear una página mejor base cuando puedo poner los eventos, propiedades, métodos, etc que quiero ser capaz de utilizar desde cualquier página de WPF?
¿Pero cómo compartes tus recursos de PigFinderPage entre todas tus páginas derivadas? Su ejemplo anterior parece implicar que los define en cada clase derivada 'XAML', en cuyo caso si desea declarar los recursos base una vez que tenga problemas sin copiar y pegar. – Schneider
Ah sí. Cualquier recurso compartido que estoy usando en vivo externo a la página. Algunos en App.xaml, algunos en diccionarios de recursos que importo según sea necesario. –
Dos cosas: termine la definición de Xaml con my: PigFinderPage> y cuando herede de otro ensamblado use: xmlns: my = "clr-namespace: Qaf.PigFM.WindowsClient; assembly = QafPigFM.WindowsClient.BasePages". No introduzca un espacio entre; y la etiqueta de ensamblaje, esto causará un proyecto no compilable. –