je définissais 3 usercontrols personnalisés comme ça:Définir une propriété d'une classe de base (ascx) dans un UserControl personnalisé et instancier une classe enfant dans le ASPX
public partial abstract class MyAbstractControl : Usercontrol{
// Base class definition here, with common property and methods
public string CommonAttribute {get; set;}
}
public partial class MyConcreteControl1 : MyAbstractControl{
// Some specific stuff here
}
public partial class MyConcreteControl2 : MyAbstractControl{
// Other specific but different stuff here
}
Alors je définissais une autre UserControl qui ont une propriété de la classe de base:
public partial class MyBeautifulControl : UserControl{
[PersistenceMode(PersistenceMode.InnerProperty)]
public MyAbstractControl ChildElement{get;set;}
}
Dans le fichier ASPX, j'utilise ce contrôle, mais je voudrais définir une instance de MyConcreteControl1 au lieu de MyAbstractControl
Mais si j'écris:
<MyBeautifulControl runat="server" id="beautiful">
<ChildElement commonAttribute="value" />
</MyBeautifulControl>
Le ChildElement ne peut être défini comme un MyAbstractControl exemple. Je voudrais créer un MyConcreteControl1 ou une instance MyConcreteControl2, selon le contexte, et je ne sais pas comment.
Si je fais ce que vous proposez, je dois savoir à l'avance que je vais instancier un MyConcreteControl1 dans la propriété ChildElement, non? – ghusse
Je n'ai pas besoin d'un moyen d'afficher le même modèle avec des modèles différents, mais j'ai besoin d'instancier différents objets avec des propriétés différentes. – ghusse