Lassen Sie uns sagen, dass wir die folgende Voraussetzungen erfüllt sein:Ist es möglich, eine Eigenschaft der Steuerliste <T> in Markup zu initialisieren?
public enum RenderBehaviors
{
A,
B,
C,
}
public class MyControl : Control
{
public List<RenderBehaviors> Behaviors { get; set; }
protected override void Render(HtmlTextWriter writer)
{
// output different markup based on behaviors that are set
}
}
Ist es möglich, die Behaviors-Eigenschaft in der ASPX/ASCX Markup zu initialisieren? d.h .:
<ns:MyControl runat="server" ID="ctl1" Behaviors="A,B,C" />
Subclassing ist keine Option in diesem Fall (die eigentliche Absicht des Behaviors ist etwas anders als in diesem Beispiel). WebForms generiert einen Parserfehler, wenn ich versuche, die Eigenschaft auf diese Weise zu initialisieren. Die gleiche Frage könnte auf andere Listentypen (int, strings) angewendet werden.
Ich weiß, ich Behaviors als String-Eigenschaft implementieren könnte und eine benutzerdefinierte Setter habe (das wäre eine private Liste verteilen und initialisieren), aber ich frage mich, ob es gab einen saubereren Ansatz. – Jason