Я спробував MVP, і, здається, він чудово працює і з формами Windows. У цій книзі є приклад форм вікон з малюнком MVP (зразок програми оплати праці). Додаток не такий складний, але дасть вам уявлення про шляхи його створення.
Спритні принципи, зразки та практики в C # ...
Ви можете отримати вихідний код в
вихідному коді
Редагувати:
Існує два варіанти схеми MVP (a) Пасивний вигляд та (b) контролер, що контролює
Для складних сценаріїв прив'язки даних я вважаю за краще використовувати схему контролера Supervising. Під час контролю схеми контролера відповідальність за зв'язування даних покладається на погляд. Отже, для перегляду дерев / даних це має бути у відповідних представленнях, лише презентація агностики перегляду повинна перейти до презентатора.
Я рекомендую ознайомитись із наступною структурою MVP
MVC # - Рамкою MVP
Не йдіть за назвою (це рамка MVP).
Прості winforms MVP відео
Winforms - MVP
Приклад роботи зі спадним списком
MVP - DropDownList
Простий приклад зв’язування з деревами (прив'язка поганої людини). Ви можете додати будь-яку логіку перегляду дерев у BindTree ().
Нижче фрагмент коду .... не перевірений, безпосередньо введений з думки ....
public interface IYourView
{
void BindTree(Model model);
}
public class YourView : System.Windows.Forms, IYourView
{
private Presenter presenter;
public YourView()
{
presenter = new YourPresenter(this);
}
public override OnLoad()
{
presenter.OnLoad();
}
public void BindTree(Model model)
{
// Binding logic goes here....
}
}
public class YourPresenter
{
private IYourView view;
public YourPresenter(IYourView view)
{
this.view = view;
}
public void OnLoad()
{
// Get data from service.... or whatever soruce
Model model = service.GetData(...);
view.BindTree(model);
}
}