Мне любопытно, почему только некоторые System.Web.UI.WebControl
элементы управления реализуют определенные интерфейсы, если они имеют одинаковые свойства интерфейса.
Например, существует множество элементов управления, которые имеют свойство Text, но только следующая реализация ITextControl
:
- Метка
- Дословный
- DataBoundLiteral
- TextBox
- ListControl
(TextBox и ListControl фактически реализуют IEditableTextControl, который реализует ITextControl)
TableCell, Button, HyperLink и другие не делают этого, поэтому я должен написать такой код
ITextControl textControl = control as ITextControl;
TableCell tableCell = control as TableCell;
if (textControl != null)
{
textControl.Text = value;
}
else if (tableCell != null)
{
tableCell.Text = value;
}
вместо этого
control.Text = value;
Это было дизайнерское решение или недосмотр?