SORU
27 ŞUBAT 2009, Cuma


Windows Formları için UI Tasarım Deseni için WPF, MVVM gibi)

MVVM mükemmel bir şekilde uygundur çünkü WPF ile en sık kullanılır. Ama ne Windows Formları hakkında? Ve yaygın olarak kullanılan yerleşik bir yaklaşım / tasarım deseni gibi bu Windows Formları için de var mı? Açıkça iyi Windows Formları ile çalışır? Bir kitap ya iyi anlatan bir makale var mı? Belki MVP ya da MVC tabanlı?

CEVAP
27 ŞUBAT 2009, Cuma


MVP denedim ve harika windows formları ile çalışmak için çok gibi görünüyor. Bu kitap MVP pattern (örnek bordro uygulaması) ile windows forms bir örnek vardır. Uygulama bu karmaşık ama oluşturma hakkında gitmek nasıl hakkında bir fikir verecektir.

Agile Principles, Patterns, and Practices in C#...

Kaynak kodu alabilirsiniz Source Code

DÜZENLEME:

MVP desen iki çeşidi vardır (a) ve (b) Pasif görünüm denetleme denetleyicisi

Karmaşık veri bağlama senaryoları için Denetleme denetleyicisi desen ile gitmeyi tercih ederim. Denetleme denetleyicisi desen veri bağlama sorumluluk manzaralı dinlenme. Yani,/bu kılavuzunu ilgili görüşlerini olmalıdır ağaç görünümü için, agnostik mantık sadece görünüm sunum için üzerinde taşındı.

Aşağıdaki MVP çerçevesinde bir göz sahip tavsiye ederim MVC# - An MVP framework

Adı (MVP bir çerçeve değil) gitme.

MVP video basit win Winforms - MVP

Açılan liste ile ilgili bir örnek MVP - DropDownList

Basit bir ağaç görünümü örnek bağlama (zavallı adam bağlama)... Sana bir BindTree herhangi bir ağaç görünümü belirli bir mantık Ekle ()....

Kod parçacığını aşağıda.... test değil, doğrudan anahtarlı düşünce içinde....

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);
   }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BlackBoxTV

    BlackBoxTV

    7 Mayıs 2007
  • humanHardDrive

    humanHardDri

    16 Mart 2011
  • Joe DiFeo

    Joe DiFeo

    7 AĞUSTOS 2012