2011-01-14 2 views
0

моей задачей является создание, например, реализации MVP. Я хочу иметь CheckBox в моем представлении (форме) - его роль заключается в том, чтобы переключать видимые истинные/ложные поля в форме.MVP checkbox implemetation in C#?

Нужно ли мне помещать некоторый код в Presenter, чтобы мой проект MVP был?

Прямо сейчас я все вещи, связанные с этим флажком на мой взгляд

Form1.Designercs :

public void SetTelephoneVisible() 
    { 
     this.telephone.Visible = true; 
     this.label5.Visible = true; 
    } 
    public void SetTelephoneInvisible() 
    { 
     this.telephone.Visible = false; 
     this.label5.Visible = false; 
    } 


     this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); 

Form1.cs :

private void checkBox1_CheckedChanged(object sender, EventArgs e) 
    { 
     if (checkBox1.Checked == true) 
      SetTelephoneVisible(); 
     if (checkBox1.Checked == false) 
      SetTelephoneInvisible(); 
    } 

Итак, еще раз - Нужно ли мне помещать некоторый код в Presenter, чтобы мой проект был MVP? ... и как это сделать?

PS: Я могу дать и весь мой код, если его необходимо уточнить STH

ответ

0

До тех пор, пока скрытие номера телефона остается чисто UI, недолговечным действием, я бы не сообщил ведущему об этом. Вы не сообщаете презентатору, когда пользователь открывает поле со списком?

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

0

На мой взгляд Model View Presenter очень широкий термин, существуют различные варианты этого. Но в целом цель каждого шаблона пользовательского интерфейса состоит в том, чтобы отделить логику от представления пользовательского интерфейса. Итак, короткий «глупый» ответ - да. Но опять-таки, на мой взгляд, эта тема более философская, какая логика поставить в презентаторе ... Например, когда пользователь прокручивает список видимых элементов ListBox, следует ли информировать ведущего об этом и вести список видимых элементов? вероятно, нет, если вам это не нужно, но это логично ... Если вы переместите всю логику, которую вы формируете в презентаторе, вы в конечном итоге будете изобретать элементы управления.
Если это влияет на вашу бизнес-логику или модель, возможно, вам стоит.

+0

Этот CheckBox вообще не влияет на модель. И, честно говоря, я не знаю, влияет ли это на Prezenter ... Но кажется, что каждое событие влияет на Prezenter - я прав? ... И btw-im, используя примерную реализацию, размещенную здесь: http://blog.vuscode.com/malovicn/archive/2006/10/10/Model-View-Presenter-_2800_MVP_2900_-pattern.aspx (но с разбиением модели из Prezenter и измененные структуры данных) - как добавить логику checkbox в Prezenter? – dantuch