Ваш контроллер должен отвечать за настройку «результата» привязки данных. Представление отвечает за правильное отображение.
Так, например, ваш webform / usercontrol (View) может отображать источник данных как свойство объекта, которое ваше View должно знать, как обрабатывать при получении:
public MyObject DataSource
{
set
{
_datasource = value;
_datasource.DataBind();
}
}
Так что, если вам нужно событие ItemDataBound, я бы все равно обработал его в представлении. Хотя в этом и может быть бизнес-логика. Если вам нужно иметь бизнес-логику в событии, я бы поместил ее в результат MyObject, прежде чем она будет передана в представление.
Таким образом, в качестве примера можно привести свойство «MyObject» быть «AllowDelete», а в вашем ItemDataBound значение этого свойства определяет, включен ли столбец в GridView.