Có thể ai đó có thể cho tôi một ví dụ về cách Gửi và Đăng ký các đối tượng tùy chỉnh giữa các lớp bằng cách sử dụng Messenger của MVVM hoặc chỉ cho tôi hướng dẫn bao gồm điều này (tốt nhất là ví dụ cụ thể) ? Tôi đã cố gắng sử dụng Messenger để truyền một đối tượng trong dự án của tôi đến một lớp khác nhưng tôi chưa bao giờ thành công ở đó. Tôi đã xem trực tuyến các ví dụ nhưng không tìm thấy bất cứ điều gì cho thấy tôi cần gì. Cảm ơn.MVVM Light Messenger - Gửi và đăng ký các đối tượng
28
A
Trả lời
50
Jesse Liberty của Microsoft có số lượng lớn concrete walk through về cách sử dụng tin nhắn trong MVVM Light. Tiền đề là tạo một lớp sẽ hoạt động như loại tin nhắn của bạn, đăng ký, sau đó xuất bản.
public class GoToPageMessage
{
public string PageName { get; set; }
}
này về cơ bản sẽ gửi tin nhắn dựa trên loại/lớp ở trên ...
private object GoToPage2()
{
var msg = new GoToPageMessage() { PageName = "Page2" };
Messenger.Default.Send<GoToPageMessage>(msg);
return null;
}
Bây giờ bạn có thể đăng ký cho các loại thông điệp được đưa ra, đó là cùng lớp định nghĩa ở trên và cung cấp phương thức sẽ được gọi khi nhận được tin nhắn, trong trường hợp này là ReceiveMessage
.
Messenger.Default.Register<GoToPageMessage>
(
this,
(action) => ReceiveMessage(action)
);
private object ReceiveMessage(GoToPageMessage action)
{
StringBuilder sb = new StringBuilder("/Views/");
sb.Append(action.PageName);
sb.Append(".xaml");
NavigationService.Navigate(
new System.Uri(sb.ToString(),
System.UriKind.Relative));
return null;
}
Các vấn đề liên quan
- 1. MVVM Light Messenger Class
- 2. Cách thích hợp để sử dụng MVVM Light Messenger
- 3. Có thể gửi chỉ một mã thông báo qua MVVM Light Messenger không?
- 4. Sử dụng Messenger của MVVM Light để chuyển các giá trị giữa Xem mô hình
- 5. mvvm light - nhắn tin
- 6. MVVM Light + Unity hoặc Prism?
- 7. MVVM-Light => đèo lệnh Parameter VÀ EventArgs lệnh
- 8. Mẫu MVVM-Light WP7 siêu đơn giản?
- 9. MVVM Light SimpleIoC có hỗ trợ đĩa đơn không?
- 10. kiện SelectionChanged ràng buộc trong Silverlight + MVVM-Light
- 11. MVVM: Giao tiếp giữa Model và ViewModels
- 12. Đăng ký INotifyPropertyChanged cho các đối tượng lồng nhau (con)
- 13. MVVM và tránh đối tượng Thiên Chúa nguyên khối
- 14. Làm thế nào để sử dụng MVVM-Light với mã thông báo?
- 15. Tìm kiếm ví dụ đơn giản về MVVM Light
- 16. Điều hướng Silverlight bằng Mvvm-light (oobe) + MEF?
- 17. MVVM-light + RIA Các phương pháp hay nhất về Dịch vụ RIA
- 18. Tiếp cận đối tượng COM đăng ký từ trăn qua một TLB đăng ký
- 19. Đăng ký đối tượng trong Thư viện tĩnh
- 20. MSN Messenger bổ trợ
- 21. Lưu đối tượng serializable để đăng ký trong .net?
- 22. Đăng ký sự kiện khi tạo đối tượng trong C#
- 23. So sánh và tương phản Caliburn v. MVVM Light Toolkit (chủ yếu cho Silverlight)?
- 24. Văn bản đối tượng JavaScript và các ký tự mảng
- 25. Gửi Đơn đăng ký không thể
- 26. Đối tượng ngữ cảnh LINQ không đăng ký như một loại đối tượng System.IDisposable
- 27. fosUserBundle gửi đăng ký email trống
- 28. Sự khác nhau giữa các ký hiệu Mảng đa chiều (đối tượng [] [] và đối tượng [,])
- 29. Node.js - Gửi email về đăng ký
- 30. Đăng ký PayPal và IPN
Tôi thích sử dụng các loại quan điểm trong thông điệp thay vì một phần của tên bởi vì nó sẽ được thay đổi khi đổi tên trang web hoặc di chuyển nó đến một namespace/thư mục –
Không có sự kiện Chú ý? –
Cảm ơn, đây chính xác là những gì tôi đang tìm kiếm. Tôi nghĩ rằng tôi cũng sẽ vượt qua các loại chứ không phải là dây, intellisense một mình làm cho cuộc sống thú vị hơn nhiều. –