2008-08-27 8 views
0

Je viens de commencer à utiliser le modèle MVP dans la grande application ASP.NET que je suis en train de construire (reconstruction réelle) et j'ai du mal à comprendre comment Je devrais utiliser des événements appliqués à la vue.Utilisation de MVP - Utilisation correcte des événements pour les tests

Dire que j'ai 2 listes dans un contrôle utilisateur, où l'on est dépendant de l'autre valeur:

<%@ 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" /> 

Comment l'événement AutoPostBack définir dans l'interface? Devrait-il être un événement qui est géré par le contrôle de l'utilisateur comme ceci:

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 

Ou faut-il être un événement défini à l'interface? Si c'est le modèle préféré, comment ajouter des événements à gérer et à utiliser?

Répondre

2

Je ne sais pas s'il y a un motif universellement préféré. J'ai tendance à préférer ajouter l'événement à l'interface d'affichage et avoir le présentateur répondre à la vue. J'ai décrit ce modèle dans more detail here.

Questions connexes