Я реализую проект в шаблоне MVP, и у меня есть несколько интерфейсов, подобных этому:
public interface IWizardStep {
event EventHandler NextStep;
}
public interface ISubmitable {
event EventHandler Submit;
}
public interface IStep : ISubmitable, IWizardStep {
string SomeProperty { get; set; }
}
Мой класс докладчика имеет следующее:
public class StepPresenter {
public IStep View { get; set; }
public StepPresenter() {
this.View.Submit += new EventHandler(StepSubmitted);
}
void StepSubmitted(object sender, EventArgs e){
//do some processing
//Now I want to raise the Next event
//this.View.NextStep(sender, e) throws a compile error
}
}
Итак, я получаю ошибку компиляции при попытке вызвать событие NextStep в представлении. Я почти уверен, что это проблема, потому что я не реализовал обработчик событий для NextStep, но этот ведущий не будет обрабатывать событие.
Докладчик будет реализован как один шаг из многих в мастере формы (ASP.NET, но это не имеет никакого значения), и мастер поймает событие NextStep и покажет следующий шаг мастера.
Так, как я могу создать событие на интерфейсе, подобном этому, или это невозможно?