Шаблон MVP и привязка данных - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь разработать тестовый проект, чтобы изучить логику шаблона MVP.

Представление представляет собой простой контроллер с панелью (добавляется в основную форму во время выполнения)

Модель представляет собой простой класс с данными человека (имя, фамилия)

Я застрял в определении контроллера, потому что я не хочу делать ошибки и не уважаю шаблон MVP.

что я хотел бы сделать: нажмите кнопку (просмотр) и заполните панель метками, содержащими данные людей в базе данных.

у докладчика есть экземпляр вида и одна из моделей, при которой презентатор получает событие, когда я нажимаю кнопку.

У меня есть следующие сомнения: в примерах, которые я нахожу вокруг докладчика, пропускается только один экземпляр модели, но в этом случае я должен привязать несколько ярлыков.

Как правильно добавить метку в представление?

namespace linqProject.Agenti.Presenter
{
    class AgentiPresenter : IAgentiPresenter
    {
        IAgentiModel agentiModel;
        IAgentiView agentiview;
        public AgentiPresenter(IAgentiModel _agentiModel, IAgentiView _agentiView)
        {
            agentiModel = _agentiModel;
            agentiview = _agentiView;
            WireUpViewEvents();
        }

        private void WireUpViewEvents()
        {
            agentiview.onLoad += Agentiview_onLoad;
        }

        private void Agentiview_onLoad(object sender, EventArgs e)
        {
            BindingData(sender);
        }

        private void BindingData(object sender)
        {
            //Control controllo = null;     
            try
            {
                //Control controllo = ((Control)sender).Parent;
                //IEnumerable<Control> controlli = FoundControls.FilterControls(controllo, c => c.Name != null && c.Name.Equals("panel1"));

                using (var ctx = new contactsEntities())
                {
                    var student = (from s in ctx.AGENTI
                                   select s);
                }
            }
            catch (Exception ex)
            {

            }
        }
    }
}

В основной форме я создаю докладчика:

Agenti.View.AgentiView av = new Agenti.View.AgentiView();
this.Controls.Add(av);

Agenti.View.IAgentiView Iav = av;
Agenti.Model.IAgentiModel Iam = new Agenti.Model.AgentiModel();

new Agenti.Presenter.AgentiPresenter(Iam, Iav);

Я выполнил функцию в Linq, чтобы получить экземпляр панели, поэтому в докладчике у меня есть панель, но если я добавляю метки с помощью цикла, они не заполняют модели, и я, похоже, не уважаю MVP шаблон. * +1021 *

Не могли бы вы объяснить, как действовать в соответствии с шаблоном MVP? Я хочу заполнить метку, добавив их во время выполнения к представлению с данными в БД

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...