Задолбался я спорить с китайцами по поводу Modal-View-Presenter. Они мне настойчиво утверждают, что это MVP:
Да, основные абстрации (View, IView и Presenter) на месте, но то как они работают сданными меня сильно напрягает. Они "напрямую" биндят данные из коллекции на контролы через BindingSource. Может быть тут вообще Presenter лишний? таким образом они пытаются синхронизировать данные в нескольких View.
public partial class View : UserControl, IView
{
Presenter _presenter;
BindingSource _bindingSource;
//Основной источник головной боли
public BindingSource BindingSource
{
get { return _bindingSource; }
set
{
_bindingSource = value;
SetUpControl();
}
}
internal Presenter Presenter
{
get { return _presenter; }
set {
_presenter = value;
_presenter.View = this;
}
}
//внаглую биндимся на данные в коллекции
private void SetUpControl()
{
ageTextBox.DataBindings.Add("Text", _bindingSource, "Name", true,
DataSourceUpdateMode.OnPropertyChanged);
}
}
public class Presenter
{
IView _view;
BusinessItems _items;
internal IPresenterControl View
{
get { return _view; }
set { _view = value; }
}
//типа деаем установку данных во вью.
public BusinessItems Items
{
get { return _items; }
set
{
_items = value;
BindingSource source = new BindingSource();
source.DataSource = _items;
_view.BindingSource = source;
}
}
}
public interface IView
{
System.Windows.Forms.BindingSource BindingSource { get; set; }
}
16.08.07 10:21: Перенесено модератором из '.NET' — Хитрик Денис
16.08.07 10:50: Перенесено модератором из '.NET' — TK