Sự cố: Tôi có một lớp tài liệu chứa danh sách các đối tượng. Các đối tượng này tăng các sự kiện như SolutionExpired
, DisplayExpired
v.v. Tài liệu cần phản hồi điều này.Xóa tất cả trình xử lý sự kiện trong một lần
Tài liệu đôi khi có thể trao đổi các đối tượng, nhưng một đối tượng không bao giờ nên là 'một phần' của nhiều tài liệu.
Lớp tài liệu của tôi chứa một loạt các phương thức đóng vai trò là trình xử lý sự kiện. Bất cứ khi nào một đối tượng nhập tài liệu, tôi sử dụng AddHandler
để thiết lập các sự kiện và bất cứ khi nào một đối tượng bị xóa khỏi tài liệu tôi sử dụng RemoveHandler
để hoàn tác thiệt hại. Tuy nhiên, có những trường hợp rất khó để đảm bảo tất cả các bước được thực hiện đúng và do đó tôi có thể kết thúc với trình xử lý sự kiện giả mạo.
Câu chuyện dài ngắn; làm thế nào để loại bỏ tất cả các trình xử lý đang trỏ đến một phương pháp cụ thể? Lưu ý, tôi không có danh sách các nguồn sự kiện tiềm năng, chúng có thể được lưu trữ ở mọi nơi.
Cái gì như:
RemoveHandler *.SolutionExpired, AddressOf DefObj_SolutionExpired
bản sao có thể có của [Cách xóa tất cả trình xử lý sự kiện khỏi điều khiển] (http://stackoverflow.com/questions/91778/how-to-remove-all-event-handlers-from-a-control) – ChrisF
Có thể bản sao của [Làm thế nào để loại bỏ tất cả xử lý sự kiện từ một điều khiển] (https://stackoverflow.com/questions/91778/how-to-remove-all-event-handlers-from-a-control) –