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?

È stato utile?

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.

Ulteriori informazioni qui e qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top