J'ai un contrôle qui regarde le long des lignes de ce:contrôle lié liaison de ASP.NET balisage
public class MyControl : Control
{
[Bindable(true)]
public MyControl MyControlParent { get; set; }
// snip
}
Dans mon code, je veux ce qui suit:
<tag:MyControl ID="foo" runat="server">
<tag:MyControl ID="bar" MyControlParent="foo" runat="server"></tag:MyControl>
</tag:MyControl>
La raison de vouloir me pour être en mesure de nommer un parent comme celui-ci est parce que je voudrais aussi être en mesure de faire quelque chose comme ceci: ou
<tag:MyControl ID="foo" runat="server">
<tag:MyControl ID="foobar" runat="server">
<tag:MyControl ID="bar" MyControlParent="foo" runat="server"></tag:MyControl>
</tag:MyControl>
</tag:MyControl>
ou
<tag:MyControl ID="foo" runat="server"></tag:MyControl>
<!-- snip -->
<tag:MyControl ID="bar" MyControlParent="foo" runat="server"></tag:MyControl>
J'ai essayé d'ajouter un convertisseur de type, mais il se déclenche avant de HttpContext.Current.Handler est réglé qui signifie que je ne peux pas rechercher les contrôles de page pour l'instance de MyControl souhaitée . La relation parent-enfant dans ce contrôle donne certains héritages de valeurs de propriété et ne signifie pas nécessairement que (lire ne devrait pas) impliquer une relation parent-enfant dans l'arbre de contrôle.
Existe-t-il une solution (pratique) à ce problème ou en veux-tu plus que ce qui est possible maintenant? =)
Vive
// Daniel
Ce serait une solution. Mais je ne pense pas que ce soit aussi agréable et propre à le faire de cette façon, sauf si vous pouvez cacher MyControlParent du balisage et MyControlParentID du code derrière. Je suis en train d'examiner cette solution, et si cela se passe, je vais marquer le vôtre comme réponse. Merci et à bientôt! – Daniel
Bien que je ne sois pas très content de la solution, je vous remercie pour la réponse! =) Je me sens en quelque sorte dépouillé d'une belle fonctionnalité. Il était assez facile de rendre MyControlParent non-lisible à partir du balisage, mais je n'ai toujours pas trouvé un moyen de cacher MyControlParentID dans le code derrière. C'était normal car il serait probablement bizarre d'avoir une propriété non disponible sur le CB, même si cela rendrait le code plus agréable, à mon avis de toute façon^_^Salut! – Daniel