Ich habe kleines Problem mit Ereignis in MVP
Ansicht und Presenter. Wenn _artistToolbarButton_Click
Ereignis gefeuert wird er Start zeigen Sie mir eine andere registrierte Ereignisse. Warum passiert das? Überprüfen Sie die Animation und Sie werden sehen, dass eine andere Meldungsbox von einem anderen Ereignis ebenfalls ausgelöst wird!C# Ereignis Start Schleife
Hier ist meine Form Code:
Form:
public partial class MainForm : Form, IMainView
{
#region Properties
public IPresenter Presenter { get; set; }
#endregion
// Constructor
public MainForm()
{
this.InitializeComponent();
this.Presenter = new MainPresenter(this);
this.WireEvents();
}
public event EventHandler<EventArgs> OnLoad;
public event EventHandler<EventArgs> ShowArtist;
public event EventHandler<EventArgs> ShowLibrary;
public event EventHandler<EventArgs> ShowTopList;
// Wire events
private void WireEvents()
{
this.Load += new EventHandler(MainForm_Load);
this._artistToolbarButton.Click += new EventHandler(_artistToolbarButton_Click);
this._libraryToolbarButton.Click += new EventHandler(_libraryToolbarButton_Click);
this._topListToolbarButton.Click += new EventHandler(_topListToolbarButton_Click);
}
#region Events
// Load
private void MainForm_Load(object sender, EventArgs e)
{
if(this.OnLoad != null)
{
this.OnLoad(this, EventArgs.Empty);
}
}
// Artist
private void _artistToolbarButton_Click(object sender, EventArgs e)
{
if (this.ShowArtist != null)
{
this.ShowArtist(this, EventArgs.Empty);
}
}
// Library
private void _libraryToolbarButton_Click(object sender, EventArgs e)
{
if (this.ShowLibrary != null)
{
this.ShowLibrary(this, EventArgs.Empty);
}
}
// Top list
private void _topListToolbarButton_Click(object sender, EventArgs e)
{
if (this.ShowTopList != null)
{
this.ShowTopList(this, EventArgs.Empty);
}
}
#endregion
}
public class MainPresenter : IPresenter
{
private IMainView _view;
// Constructor
public MainPresenter(IMainView view)
{
this._view = view;
this.WireEvents();
}
// Wire events
public void WireEvents()
{
this._view.OnLoad += OnLoad;
this._view.ShowArtist += ShowArtist;
this._view.ShowArtist += ShowLibrary;
this._view.ShowArtist += ShowTopList;
}
// On load
private void OnLoad(object sender, EventArgs e)
{
MessageBox.Show("OnLoad");
}
// ShowArtist
private void ShowArtist(object sender, EventArgs e)
{
MessageBox.Show("ShowArtist");
}
// ShowLibrary
private void ShowLibrary(object sender, EventArgs e)
{
MessageBox.Show("ShowLibrary");
}
//ShowTopList
private void ShowTopList(object sender, EventArgs e)
{
MessageBox.Show("ShowTopList");
}
}
Moderator:
public class MainPresenter : IPresenter
{
private IMainView _view;
// Constructor
public MainPresenter(IMainView view)
{
this._view = view;
this.WireEvents();
}
// Wire events
public void WireEvents()
{
this._view.OnLoad += OnLoad;
this._view.ShowArtist += ShowArtist;
this._view.ShowArtist += ShowLibrary;
this._view.ShowArtist += ShowTopList;
}
// On load
private void OnLoad(object sender, EventArgs e)
{
MessageBox.Show("OnLoad");
}
// ShowArtist
private void ShowArtist(object sender, EventArgs e)
{
MessageBox.Show("ShowArtist");
}
// ShowLibrary
private void ShowLibrary(object sender, EventArgs e)
{
MessageBox.Show("ShowLibrary");
}
//ShowTopList
private void ShowTopList(object sender, EventArgs e)
{
MessageBox.Show("ShowTopList");
}
}
Sieht ein einfaches Kopieren und Einfügen Fehler werden in 'WireEvents' – TheLethalCoder
Bitte geben Sie ein minimales vollständiges und verifizierbares Beispiel an (http://stackoverflow.com/help/mcve), lassen Sie den Benutzer hier nicht Ihren gesamten Code durchsuchen. Versuchen Sie, Ihr Problem auf das absolute Minimum zu reduzieren, das für die Reproduktion erforderlich ist. – HimBromBeere