MVP - Отображение / скрытие элементов управления на основе бизнес-логики - PullRequest
0 голосов
/ 31 мая 2011

Каков наилучший способ добиться этого? У меня в презентаторе есть метод, который заполняет различные текстовые поля с помощью оператора switch, но также должен убедиться, что видны только эти текстовые поля, например ::

switch (operation.CalculationType) {
case CalcType.Type1:
    textbox1.Visible = true
    _view.TextBox1 = "some value";
    break;
case CalcType.Type2:
    textbox1.Visible = true;
    textbox2.Visible = true;
    _view.TextBox1 = "some value";
    _view.TextBox2 = "another value";
    break;

Мне не нравится идея выставления свойства Visible для каждого элемента управления в форме (теоретически это может привести к раскрытию всевозможных свойств, что мне просто кажется неправильным). У меня была еще одна идея - создать метод или событие, которое вызывает докладчик, сообщая форме, чтобы показать / скрыть элементы управления, но это означает копирование логики в докладчике.

Так, каков "правильный" способ сделать что-то подобное?

Спасибо

1 Ответ

0 голосов
/ 31 мая 2011

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

Inteface IFormView
   Sub DisplayType1
   Sub DisplayType2
   ....
End Interface
...