2011-06-22 23 views
8

Sau đây là đoạn trích từ this article trên MVVM. Ai đó có thể cung cấp ví dụ về cách các mẫu khác (lệnh, DI) được sử dụng trong WPF? Có bất kỳ mẫu desgin nào khác được sử dụng trong WPF mà bạn không thấy được liệt kê ở đây không?Mẫu thiết kế được sử dụng trong WPF

Có các mẫu khác mà bạn nên biết để hỗ trợ bạn trong MVVM. Các mẫu như chỉ huy (được đưa vào WPF, giải pháp cho SL), hòa giải và gasp tiêm phụ thuộc. .

+1

WPF và Silverlight khá giống nhau về những điều này. – BoltClock

+0

@BoltClock: Không chắc chắn phản ứng của bạn liên quan đến câu hỏi của tôi như thế nào. Bạn có thể vui lòng xây dựng? –

+0

Bạn có thể giải thích tại sao bạn hỏi câu hỏi này? –

Trả lời

1

dữ liệu ràng buộc (giữa Xem và ViewModel) sử dụng mẫu Observer. Ngoài ra: mô hình Nhà máy có thể được sử dụng để khởi tạo ViewModel nhưng đó là tùy chọn.

1

phụ thuộc Setter tiêm:

Khi sử dụng MVVM bạn phải tiêm một thể hiện của ViewModel vào View bằng cách đặt nó vào thuộc tính view.DataContext:

var viewModel = new CustomViewModel(); 
var view = new CustomView(); 
view.DataContext = viewModel; 
23

Tôi đã viết bài báo về một số trong số họ: WPF and Silverlight design patterns

Dưới đây là một mô tả ngắn gọn về các mô hình:

1) MVVM - sử dụng như một công cụ chuyển đổi mô hình và là một sự thay thế của mã ẩn. Cải thiện khả năng kiểm tra, nó dễ dàng hơn nhiều để viết các bài kiểm tra đơn vị cho ViewModel.

2) Tiêm phụ thuộc - được sử dụng để cải thiện khả năng kiểm tra của một lớp (bạn có thể viết bài kiểm tra đơn vị cho một lớp cụ thể riêng biệt với người khác) và khả năng thay đổi triển khai theo cách dễ dàng hơn (thay đổi trình ghi nhật ký, bộ nhớ cache, dịch vụ web, vv)

3) Lệnh - có thể được áp dụng cho các nút điều khiển Button và MenuItem theo mặc định, tắt điều khiển nếu không thể thực thi hành động. Cũng được sử dụng trong mẫu MVVM như là sự thay thế các sự kiện mã-đằng sau.

mẫu khác từ các cuốn sách kinh điển mà đã được sử dụng trong WPF:

  • Singleton. Lớp Ứng dụng trong WPF và lớp HttpContext trong các biểu mẫu Web.
  • Bộ điều hợp. Công cụ liên kết dữ liệu, sử dụng giao diện IValueConverter để chuyển đổi các giá trị ràng buộc cho giao diện người dùng.
  • Trang trí. Lớp Border, trang trí bất kỳ lớp UIElement nào có đường viền có độ dày và màu thay đổi.
  • Mặt tiền. Lớp PrintDialog, cung cấp giao diện đơn giản cho phép bạn sử dụng toàn bộ hệ thống con in và tài liệu mà WPF cung cấp.
  • Lệnh. Giao diện ICommand, được triển khai bởi các lớp RoutedCommand và RoutedUICommand.
  • Iterator. Giao diện IEnumerator, mà nhiều bộ sưu tập và danh sách trong .NET Framework thực hiện.
  • Máy quan sát. Giao diện và sự kiện INotifyPropertyChanged.
Các vấn đề liên quan