Domanda

Ho appena iniziato a utilizzare il pattern MVP nella grande applicazione ASP.NET che sto creando (ricostruendo in realtà) e ho difficoltà a capire come dovrei utilizzare gli eventi applicati alla vista.

Supponiamo che io abbia 2 elenchi a discesa in un controllo utente, in cui uno dipende dal valore dell'altro:

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

Come deve essere definito l'evento AutoPostBack nell'interfaccia?Dovrebbe trattarsi di un evento gestito dal controllo utente in questo modo:

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

Oppure dovrebbe esserci un evento definito nell'interfaccia?Se questo è il modello preferito, come posso aggiungere eventi da gestire e utilizzare?

È stato utile?

Soluzione

Non so se esiste un modello universalmente preferito.Tendo a preferire l'aggiunta dell'evento all'interfaccia di visualizzazione e la risposta del relatore alla visualizzazione.Ho descritto questo modello in maggiori dettagli qui.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top