Обычно я выполняю привязку данных и обработку событий на уровне просмотра.Делая это в Presenter, вы создаете зависимость между Presenter и View, которую вы хотите избежать.Я не уверен, как вы будете тестировать метод Presenter, который вызывает .DataBind()
в GridView.
Что я хотел бы сделать (и то, что я считаю стандартным), это добавить свойство к коду позадиваш класс представления, который представляет данные для GridView.Так, скажем, ваш GridView показывает сотрудников, свойство может быть примерно таким:
public List<Employee> Employees
{
get { return (List<Employee>)GridView1.DataSource; }
set // The Presenter calls this
{
GridView1.DataSource = value;
GridView1.DataBind();
}
}
Презентатор просто установит это свойство, а затем вы выполните привязку данных и обработку событий, как это обычно делается с веб-формами.
Это также позволит вам выполнить модульное тестирование вашего докладчика, если вы захотите.Предполагая, что ваше представление реализует интерфейс, вы можете использовать другую реализацию для вашего модульного теста, т.е. установщик не будет вызывать .DataBind()
, это может быть просто автоматическое свойство.Вы можете создать фиктивное представление, передать его Presenter, а затем проверить, что ваше свойство не равно нулю или что-то в этом роде.