Как запустить настраиваемое событие из пользовательского элемента управления?

У меня есть очень интересная задача, с которой мне нужна помощь. Описание выглядит следующим образом:

У меня есть пользовательский элемент управления (SomeUserControl), который я использую в главном окне. Я пишу свое приложение полностью на SomeUserControl, а в главном окне размещается SomeUserControl и ничего больше.

Прямо сейчас у меня есть кнопка выключения (в SomeUserControl), которая должна закрывать главное окно. Причина этого в том, что я не хочу, чтобы SomeUserControl закрывал само приложение, а запускал событие от SomeUserControl, и главное окно его получает, а главное окно закрывает приложение вместо SomeUserControl.

Как мне это сделать? Я не знаком с концепцией создания и обработки настраиваемых событий, поэтому, если кто-то сможет объяснить это словами и кодом в качестве примера, я буду вам очень благодарен!

Edit: Вот мой код.

(в окне 2)

публичное событие CloseApp как обработчик событий

Private Sub CancelButton_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles CancelButton.Click
    DialogResult = False
    RaiseEvent CloseApp(Me, New EventArgs)
End Sub

(в главном окне) Public loginPage As New LoginPage

Public Sub New()
    InitializeComponent()
    AddHandler loginPage.CloseApp, AddressOf Me.ShutDownJobChangeWindow
End Sub

Private Sub ShutDownJobChangeWindow(ByVal sender As Object, ByVal e As EventArgs)
    Application.Current.Shutdown()
End Sub

Цель: я хочу закрыть приложение, когда я нажимаю кнопку «Отмена» в окне 2, но я не хочу делать это таким образом, чтобы окно 2 закрывалось само, а отправляло какое-то уведомление на главную Окно и Главное окно закрывает приложение.

12
задан will0809 11 February 2012 в 02:59
поделиться