Заполнение формы 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: Возможно вопрос поставлен несколько неточно. Если нужно - перефразирую. Спасибо


Ответы (0 шт):