2010-04-09 6 views
11

Ich bin neugierig, warum nur einige System.Web.UI.WebControl Steuerelemente bestimmte Schnittstellen implementieren, wenn sie die gleichen Eigenschaften einer Schnittstelle haben.Warum implementieren nicht alle System.Web.UI.WebControl-Klassen mit Texteigenschaften ITextControl?

Zum Beispiel gibt es viele Kontrollen, die eine Text-Eigenschaft haben, aber erst nach der Umsetzung ITextControl:

  • Label-
  • Wörtliche
  • DataBoundLiteral
  • TextBox
  • List

(TextBox und List tatsächlich IEditableTextControl implementieren, die ITextControl implementiert)

Tablecell, Knopf, HyperLink und andere nicht so habe ich Code zu schreiben, wie diese

ITextControl textControl = control as ITextControl; 
TableCell tableCell = control as TableCell; 

if (textControl != null) 
{ 
    textControl.Text = value; 
} 
else if (tableCell != null) 
{ 
    tableCell.Text = value; 
} 

statt dessen

control.Text = value; 

War das eine Designentscheidung oder ein Versehen?

+0

Gute Frage. Ich denke der Unterschied liegt zwischen HtmlControl & einem WebControl. Aber würde gerne mehr Hintergrund zu diesem Thema hören ... – Sunny

+0

@Sunny Ich kann verstehen, wenn man HtmlControl und das andere ist WebControl, aber es gibt Unterschiede zwischen verschiedenen WebControls. – jrummell

Antwort

1

Ich denke, es war in Ordnung, ich glaube nicht, dass es ein Versehen war; Das sind die Steuerelemente, bei denen der Text der Hauptfokus des Zwecks der Kontrolle ist. Ich sehe Ihren Standpunkt, denn das wäre sehr praktisch, wenn Steuerungen mehr dieser Arten von Schnittstellen verwenden.

+0

Das macht Sinn. – jrummell