ฉันได้ลอง MVP และดูเหมือนว่าจะใช้งานได้ดีกับฟอร์ม windows เช่นกัน หนังสือเล่มนี้มีตัวอย่างของแบบฟอร์ม windows ที่มีรูปแบบ MVP (ตัวอย่างแอปพลิเคชันบัญชีเงินเดือน) แอปพลิเคชั่นนั้นไม่ซับซ้อน แต่จะทำให้คุณมีความคิดเกี่ยวกับการสร้างมันขึ้นมา
หลักการรูปแบบและการปฏิบัติที่คล่องตัวใน C # ...
คุณสามารถรับซอร์สโค้ดได้ที่
Source Code
แก้ไข:
รูปแบบ MVP (ก) มุมมองแบบพาสซีฟและตัวควบคุมการกำกับดูแลมีสองรูปแบบ
สำหรับสถานการณ์ฐานข้อมูลที่ซับซ้อนฉันต้องการไปกับรูปแบบของตัวควบคุม ในการควบคุมรูปแบบการควบคุมนั้นความรับผิดชอบของฐานข้อมูลจะอยู่ในมุมมอง ดังนั้นสำหรับ treeview / datagrid สิ่งนี้ควรอยู่ในมุมมองที่เกี่ยวข้องเฉพาะตรรกะมุมมองที่ไม่เชื่อเรื่องพระเจ้าเท่านั้นที่ควรย้ายไปยังผู้นำเสนอ
ฉันจะแนะนำให้ดูที่กรอบ MVP ต่อไปนี้
MVC # - กรอบ MVP
อย่าไปตามชื่อ (เป็นกรอบ MVP)
วิดีโอ winforms ง่าย ๆ MVP
Winforms - MVP
ตัวอย่างของการจัดการกับรายการแบบหล่นลง
MVP - DropDownList
ตัวอย่างการเชื่อมโยง treeview อย่างง่าย (การผูกชายที่ไม่ดี) คุณสามารถเพิ่มตรรกะเฉพาะ treeview ใน BindTree ()
ด้านล่างนี้เป็นข้อมูลโค้ด .... ไม่ผ่านการทดสอบโดยใส่รหัสโดยตรงจากความคิด ....
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);
}
}