2008-08-27 5 views
0

Я только что начал использовать шаблон MVP в большом приложении ASP.NET, которое я создаю (перестраивая на самом деле), и мне сложно определить, как Я должен использовать события, применяемые к представлению.Использование MVP - как правильно использовать события для тестирования

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

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="ucTestMVP.ascx.vb" Inherits=".ucTestMVP" %>  
<asp:DropDownList ID="ddlCountry" runat="server" AutoPostBack="True" /> 
<asp:DropDownList ID="ddlCity" runat="server" /> 

Как следует AutoPostBack события определяются в интерфейсе? Если это будет событие, которое обрабатывается с помощью пользовательского элемента управления, как это:

Public Partial Class ucTestMVP 
    Inherits System.Web.UI.UserControl 
    Implements ITestMVPView 

    Protected Sub PageLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not Page.IsPostBack Then 
     Dim presenter As New TestMVPPresenter(Me) 
     presenter.InitView() 
    End If 
    End Sub 

    Private Sub ddlCountrySelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlCountry.SelectedIndexChanged 
    Dim presenter as New TestMVPPresenter(Me) 
    presenter.CountryDDLIndexChanged() 
    End Sub 

End Class 

Или должны там быть событие определено в интерфейсе? Если это предпочтительный шаблон, как добавить события, которые нужно обрабатывать и использовать?

ответ

2

Я не знаю, есть ли универсальный образец. Я предпочитаю добавлять это событие в интерфейс просмотра и отвечать ведущему на представление. Я описал этот шаблон в more detail here.