Tôi có một nhiệm vụ rất thú vị mà tôi cần trợ giúp. Mô tả như sau:Làm cách nào để kích hoạt sự kiện tùy chỉnh từ Kiểm soát người dùng?
Tôi có một điều khiển người dùng (SomeUserControl), mà tôi đang sử dụng trong Cửa sổ chính. Tôi viết hoàn toàn ứng dụng của mình trên SomeUserControl và Cửa sổ chính đang lưu trữ SomeUserControl và không có gì khác.
Ngay bây giờ tôi có một nút tắt (trong SomeUserControl), đó là nghĩa vụ phải đóng cửa sổ chính. Lý do cho điều này là tôi không muốn bất cứ điều gì từ SomeUserControl để đóng ứng dụng riêng của mình, nhưng để bắn một sự kiện từ SomeUserControl, và cửa sổ chính nhận được nó, và cửa sổ chính sẽ đóng ứng dụng thay vì SomeUserControl.
Tôi làm cách nào? Tôi không quen với khái niệm tạo và xử lý các sự kiện tùy chỉnh, vì vậy nếu ai đó có thể giải thích nó bằng lời nói và trong mã làm ví dụ, tôi sẽ rất biết ơn bạn!
Chỉnh sửa: Đây là mã của tôi cho đến thời điểm này.
(trong Window 2)
Public Event CloseApp As EventHandler
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
(Trong Main Window) Công 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
Mục tiêu: Tôi muốn đóng ứng dụng khi tôi nhấp hủy bỏ trong Cửa sổ 2, nhưng tôi không muốn làm điều đó theo cách mà Cửa sổ 2 đóng chính nó, nhưng bằng cách gửi một số thông báo đến Cửa sổ Chính và Chính Cửa sổ đóng ứng dụng.
giống như giải pháp AkselK cung cấp, làm thế nào để làm điều đó trong VB? đặc biệt là một phần trong If (CloseApp! = null). Bởi vì intellisense không thể tìm thấy CloseApp. - will0809 20 phút trước – will0809
Tôi đang có cùng một câu hỏi nhưng tôi đang sử dụng MVVM, vì vậy tôi không thể sử dụng này: - someUserCtrl.CloseApp + = new EventHandler (MyFn); Thay vào đó tôi đã sử dụng thư viện MVVM Light và thêm trình kích hoạt sự kiện vào MainWindow của tôi dưới dạng i: EventTrigger>< /i:Interaction.Triggers> Nhưng nó không hoạt động. –