Tôi khá mới với mvvm và ánh sáng mvvm, nhưng tôi nghĩ rằng tôi hiểu ý tưởng chung của nó. Những gì tôi không hiểu là nếu tôi muốn mở một cửa sổ mới, nhưng cửa sổ đó cần dữ liệu từ người gọi thực hành tốt nhất để đưa dữ liệu đó đến cửa sổ mới là gì? Nếu tôi chuyển dữ liệu cho hàm tạo thì điều đó có nghĩa là tôi cần mã trong đoạn mã phía sau để chuyển nó tới mô hình khung nhìn. Tôi không thể sử dụng tin nhắn, bởi vì nó không phải là dữ liệu cơ bản. Cảm ơn trước.Thực tiễn tốt nhất để mở một cửa sổ mới trong ánh sáng MVVM với thông số
Trả lời
Một lựa chọn phổ biến là sử dụng một lớp dịch vụ sẽ tạo chế độ xem/chế độ xem và hiển thị chế độ xem mới. Phương thức khởi tạo mô hình khung nhìn của bạn và/hoặc phương thức/thuộc tính có thể nhận dữ liệu từ người gọi và sau đó khung nhìn sẽ bị ràng buộc với viewmodel trước khi hiển thị nó trên màn hình.
đây là một thực hiện rất rất đơn giản của một DialogService:
public class DialogService : IDisposable
{
#region Member Variables
private static volatile DialogService instance;
private static object syncroot = new object();
#endregion
#region Ctr
private DialogService()
{
}
#endregion
#region Public Methods
public void ShowDialog(object _callerContentOne, object _callerContentTwo)
{
MyDialogViewModel viewmodel = new MyDialogViewModel(_callerContentOne, _callerContentTwo);
MyDialogView view = new MyDialogView();
view.DataContext = viewmodel;
view.ShowDialog();
}
#endregion
#region Private Methods
#endregion
#region Properties
public DialogService Instance
{
get
{
if (instance == null)
{
lock (syncroot)
{
if (instance == null)
{
instance = new DialogService();
}
}
}
return instance;
}
}
#endregion
}
bạn vui lòng cho tôi xem một ví dụ cơ bản? Tôi không chắc tôi sẽ theo bạn hoàn toàn. –
http://blog.roboblob.com/2010/01/19/modal-dialogs-with-mvvm-and-silverlight-4/ – geedubb
geedubb chỉ hoạt động với Silverlight. Tôi đang xây dựng một ứng dụng wpf trên studio hình ảnh 2010. –
- 1. Cách tốt nhất để có được hiệu ứng ánh sáng cửa sổ điện thoại 7
- 2. Thực tiễn tốt nhất với số liệu lớn trong C#
- 3. Thực tiễn tốt nhất để hiển thị thông báo lỗi
- 4. Nơi tốt nhất để hiển thị cửa sổ mới trong Chế độ xem mô hình ViewModel
- 5. DTO: thực tiễn tốt nhất
- 6. Thực tiễn tốt nhất cho thông tin phiên bản?
- 7. System.Windows.Forms.WebBrowser mở liên kết trong cùng cửa sổ hoặc cửa sổ mới với cùng một phiên
- 8. Mở URL SSRS trong Cửa sổ mới
- 9. JavaScript Thực tiễn tốt nhất
- 10. Python Daemon Packaging Thực tiễn tốt nhất
- 11. Mở hình ảnh trong cửa sổ mới
- 12. JavaFX mở cửa sổ mới
- 13. Google CSE mở trong cửa sổ mới
- 14. Xóa cửa sổ bóng/ánh sáng khỏi Visual Studio 2012
- 15. Thực tiễn tốt nhất để ánh xạ DTO cho đối tượng miền?
- 16. Eclipse: Mở trong Cửa sổ mới
- 17. Nút mở trong cửa sổ mới?
- 18. ASP.NET Response.Redirect để mở một cửa sổ trình duyệt mới?
- 19. Bộ công cụ ánh sáng MVVM - RelayCommands, DelegateCommands và ObservableObjects
- 20. Trộn nhiều tệp jQuery - Thực tiễn tốt nhất?
- 21. ASP.Net MVC Cookies Thực tiễn tốt nhất
- 22. Thực tiễn tốt nhất Xử lý sự kiện GWT
- 23. Thực tiễn tốt nhất để sử dụng partials trong Rails
- 24. Thực tiễn tốt nhất của LDAP
- 25. Mở tệp mới trong cửa sổ gui mới hoặc bằng cách tách cửa sổ
- 26. Cách mở tệp mới trong vim trong cửa sổ mới
- 27. XNA với Windows Forms - Mở cửa sổ mới
- 28. Mở liên kết trong cửa sổ mới với Capybara
- 29. UIView Vẽ thực tiễn tốt nhất
- 30. Làm cách nào để có được Ánh sáng MVVM hoạt động tốt với Trang mục được nhóm trong Metro?
Xin lỗi để hồi sinh này từ quá khứ xa xưa, nhưng những gì bạn có nghĩa là bởi "Tôi không thể sử dụng tin nhắn, bởi vì nó không phải là cơ bản dữ liệu." ? Tôi hỏi điều này vì tôi đang học MVVM và nếu tôi ở trong tình huống của bạn, tôi sẽ sử dụng Nhắn tin. – lightxx
Tôi xin lỗi đã quá lâu để tôi nhớ –