Heredar de una subclase abstracta de UserControl
-
05-07-2019 - |
Pregunta
Tengo un conjunto de UserControls que necesitan tener algunas propiedades similares. Por lo tanto, he definido una subclase abstracta de UserControl que define estas propiedades y actualicé los archivos .xaml.cs y .g.cs para heredar de esta clase base. Todo se compila bien y funciona bien. ¡Excelente! Pero .... los archivos .g.cs se generan y se regenerarán, entonces, ¿cómo le digo a Blend o Visual Studio que sigan heredando de mi clase base en lugar de UserControl?
Solución
Debe cambiar un poco el XAML para anteponer la declaración de UserControl con un espacio de nombres:
<local:MyBaseControl x:Class="MyNameSpace.MyControl"
xmlns:local="clr-namespace:MyNameSpace"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Content -->
</local:MyBaseControl>
Donde MyNameSpace es su espacio de nombres (¡duh!), MyBaseControl es su clase base y MyControl es su control que hereda de MyBaseControl. La parte x: Class no necesita estar en el mismo espacio de nombres, solo la he mantenido igual para el ejemplo.