Заполнение формы UserControl'ами с данными в MVP паттерне
Столкнулся со следующим вопросом: Пытаюсь осознать MVP паттерн и применить в приложении на WinForms. В один из моментов работы требуется подгрузить данные из БД и для каждой записи запихать на форму свой экземпляр UserControlа. Я метод вроде реализовал, но он кажется крайне костыльным и есть ощущение, что существует более изящное решение. Основная загвоздка в том, как корректно создавать в презентере объект нужного типа данных, если презентер не знает про реализацию View, а View не знает про презентер
Реализация метода в презентере:
private void LoadPerformacneView(IPerformanceInfoView performanceView)
//Из view получаю экземпляр ЮзерКонтрола
{
try
{
IPerformanceInfoView performanceInfo;
foreach (var item in _service.GetPerformances())
{
performanceInfo = (IPerformanceInfoView)performanceView.Clone();
//Заполнение ЮзерКонтрола данными
performanceInfo.PerformanceName = item.Name;
performanceInfo.PerformanceGenre = _service.GetGenre(item.GenreId).Name;
performanceInfo.PerformanceLength = item.LengthMinutes;
performanceInfo.PerformanceProfit = item.Profit;
performanceInfo.PerformanceAttendanceRate = item.AttendanceRate;
performanceInfo.IsChildren = item.IsForChildren;
performanceInfo.IsHeavy = item.IsHeavyToDecorate;
//Добавление ЮзерКонтрола на форму
_view.PerformanceInfos.Add(performanceInfo);
}
}
catch(Exception e)
{
_view.ShowErrorMessage(e.Message);
}
}
PS: Возможно вопрос поставлен несколько неточно. Если нужно - перефразирую. Спасибо