Existe-t-il un moyen de surcharger la procédure Items.Add dans la classe héritée de DropDownList ?
-
13-09-2020 - |
Question
J'ai ma propre classe personnalisée qui hérite de DropDownList.Existe-t-il un moyen de remplacer la procédure Items.Add ?Comment?
La solution
Y a-t-il une raison particulière pour laquelle vous souhaitez hériter de cette classe, car vous fournissez cette classe à une interface?Si la réponse est non alors, vous devez vraiment utiliser la composition sur l'héritage;alors votre problème n'existerait pas.
Autres conseils
Vous ne pouvez pas remplacer la fonctionnalité Ajouter par défaut -- ListItemCollection
est scellé - mais vous pouvez écrire une méthode d'extension qui étend le ListItemCollection
classe.Voici un exemple :
namespace Truthseeker.Extensions
{
using System.Web.UI.WebControls;
public static class ListItemCollectionExtensions
{
public static void Add(
this ListItemCollection collection,
ListItem item,
string extraParameter)
{
if (extraParameter.Contains("Add"))
collection.Add(item);
}
}
}
Vous pouvez alors écrire quelque chose comme :
DropDownList ddl = new DropDownList();
ddl.Items.Add(new ListItem("text", "value"), "Add");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow