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
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); } }
Word, Windows Formları etiket için şal...
Geri Altyapısı için tasarım Deseni...
Nasıl standart Kenarlıksız düğmesi (ta...
Gecko Gömmek veya bir web görünümü gib...
SQLiteDatabase için kullanarak Singlet...