Сори что много инфы))
Есть форма MainWindows
У нее есть кнопка которая вызывает Форму AddContent
private void ButtonAddSpending_Click(object sender, RoutedEventArgs e) {
AddContent addContent = new AddContent();
addContent.Owner = this;
addContent.ShowDialog();
}
У формы AddContent есть событие
public event EventHandler EventAddContent;
при вызове формы, в конструкторе подписываюсь на событие.
buttonAddContent.Click += ButtonAddContent_Click;
вот сам ButtonAddContent_Click
private void ButtonAddContent_Click(object sender, RoutedEventArgs e) {
EventAddContent?.Invoke(this, EventArgs.Empty);
this.Activate();
buttonAddContent.IsEnabled = false;
}
Есть класс который управляет всеми движениями в приложении
class MainPresenter
{
private readonly IAddContentPresenter _addContent;
в конструкторе в конструктор передаю интерфейс, в котором есть это событие.
(Форма реализует данный интерфейс)
public MainPresenter( IAddContentPresenter addContent) {
_addContent = addContent;
_addContent.EventAddContent += View_AddContent;
}
в этом классе уже есть метод который реализует нажатие
private void View_AddContent(object sender, EventArgs e) { //Метод записывает данные в БД
_manager.SetDBHistories(_history);
}
Конструктор класса вызывается в MainWindow
событие не работает!
в отладчике событие показывает
null
EventAddContent?.Invoke(this, EventArgs.Empty);