Ereditazione da una sottoclasse astratta UserControl
-
05-07-2019 - |
Domanda
Ho un set di UserControls che devono avere alcune proprietà simili. Così ho definito una sottoclasse astratta di UserControl che definisce queste proprietà e ho aggiornato i file .xaml.cs e .g.cs da ereditare da questa classe di base. Tutto si compila bene e funziona bene. Grande! Ma .... i file .g.cs vengono generati e verranno rigenerati, quindi come posso dire a Blend o Visual Studio di continuare a ereditare dalla mia classe di base piuttosto che da UserControl?
Soluzione
Devi modificare un po 'XAML per aggiungere il prefisso alla dichiarazione UserControl con uno spazio dei nomi:
<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>
Dove MyNameSpace è il tuo spazio dei nomi (duh!), MyBaseControl è la tua classe di base e MyControl è il tuo controllo che eredita da MyBaseControl. La parte x: Class non deve necessariamente trovarsi nello stesso spazio dei nomi, l'ho solo mantenuta la stessa per l'esempio.