Tôi đã thử MVP và nó dường như cũng hoạt động tốt với các hình thức windows. Cuốn sách này có một ví dụ về các hình thức cửa sổ với mẫu MVP (ứng dụng bảng lương mẫu). Ứng dụng này không phức tạp lắm nhưng sẽ cho bạn ý tưởng về cách tạo ra nó.
Nguyên tắc, mô hình và thực tiễn nhanh nhẹn trong C # ...
Bạn có thể lấy mã nguồn tại
Mã nguồn
BIÊN TẬP:
Có hai biến thể của mẫu MVP (a) Chế độ xem thụ động và (b) bộ điều khiển giám sát
Đối với các kịch bản liên kết dữ liệu phức tạp, tôi thích sử dụng mẫu điều khiển Giám sát. Trong giám sát mẫu điều khiển, trách nhiệm cơ sở dữ liệu còn lại với khung nhìn. Vì vậy, đối với treeview / datagrid, điều này phải nằm trong các khung nhìn tương ứng, chỉ nên xem logic bất khả tri nên được chuyển sang người trình bày.
Tôi khuyên bạn nên xem qua MVP framework
MVC # sau - Khung MVP
Đừng gọi tên (đó là khung MVP).
Winforms đơn giản Video MVP
Winforms - MVP
Một ví dụ về xử lý danh sách thả xuống
MVP - DropDownList
Ví dụ ràng buộc treeview đơn giản (ràng buộc của người nghèo). Bạn có thể thêm bất kỳ logic cụ thể nào của treeview trong BindTree ().
Dưới đây là đoạn mã .... không được kiểm tra, được nhập trực tiếp từ ý nghĩ ....
public interface IYourView
{
void BindTree(Model model);
}
public class YourView : System.Windows.Forms, IYourView
{
private Presenter presenter;
public YourView()
{
presenter = new YourPresenter(this);
}
public override OnLoad()
{
presenter.OnLoad();
}
public void BindTree(Model model)
{
// Binding logic goes here....
}
}
public class YourPresenter
{
private IYourView view;
public YourPresenter(IYourView view)
{
this.view = view;
}
public void OnLoad()
{
// Get data from service.... or whatever soruce
Model model = service.GetData(...);
view.BindTree(model);
}
}