2009-11-05 10 views
0

J'ai une page avec 2 contrôles Web qui, intentionnellement, ne se connaissent pas. Chaque contrôle a également sa propre classe d'assistance pour prendre soin des événements et autres. Seulement 1 des contrôles (EditBox) a un bouton "sauvegarder" et quand il enregistre, il doit saisir des données de l'autre contrôle (MceEditorAlpha) sur la page, comment je fais cela? Le contrôle MceEditorAlpha a SaveMessage() dessus qui récupérera des données du contrôle EditBox et l'enregistrera dans son objet de classe d'aide, cependant, je ne sais pas comment appeler SaveMessage() de la classe d'aide.C# Appel d'une méthode dans une classe contenant

Voici le contrôle que n'a pas avoir un bouton de sauvegarde sur elle.

public partial class MceEditorAlpha : System.Web.UI.UserControl 
    { 
     public MceEditor Mce { get; set; } 

     public void SaveMessage() 
     { 
      if (Mce == null) 
       Mce = new MceEditor(); 
      Mce.Text = tbDescription.Text; 
     } 
    } 

Maintenant, dans la classe d'aide pour MceEditorAlpha J'ai un gestionnaire d'événements qui se déclenche lorsque le bouton « enregistrer » sur le contrôle EditBox est pressé. Ce que je dois faire est d'obtenir cet événement pour déclencher SaveMessage() dans la classe ci-dessus. Dois-je créer un événement dans MceEditor et un gestionnaire dans MceEditorAlpha ci-dessus?

public class MceEditor : IMessageBroadcaster 
    { 
     public string Text { get; set; } 

     public void OnEditBoxSave(object sender, EventArgs e) 
     { 
      //Handle the event from the EditBoxSave "save" button_click 
     } 
    } 

Répondre

1

Bien comme je le vois MceEditorAlpha a une référence à MceEditor. Pour être en mesure de recevoir des notifications, MceEditor expose un événement OnSave et l'insère dans MceEditorAlpha

+0

Ça me semble bien, je travaille dessus maintenant. Je suppose que je n'ai jamais vraiment fait et gestionnaire d'événements qui tire tout simplement un autre événement avant. – kd7iwp

Questions connexes