2010-03-01 15 views
5

Şu anda Prizma (Kompozit WPF) projesi ile WPF'nin nasıl gelişmiş bir şekilde kullanılacağını öğreniyorum.StockTrader RI> Kontrolörler, Sunucular, WTF?

aşağıdaki parçanın her birinin kesin rolü nedir:

Birçok video ve örnekler ve StockTraderRI bana bu soruyu sormak yapar demo uygulama izlemek?

  • SomethingService: Tamam Bu verileri
  • SomethingView yönetmek için bir şeydir: Tamam, bu görüntülenen budur
  • SomethingPresentationModel: Tamam, bu görünüm ViewModel (eşdeğeri bağlamak için veri ve komutları içerir).
  • SomethingPresenter: Bir Sunum ve Denetleyici gerekli olmadığını gördük çok

Dont'anlamak ama neden burada olduklarını anlamak istiyorum: Gerçekten

  • SomethingController kullanımı
  • var anlamıyorum . Birisi bunları kullanmak için ve rollerini söyleyebilir mi?

    +1

    Katılıyorum, şeylerin kafa karıştırıcı bir ucube karışıklık anlamına gelir. – Pierreten

    cevap

    7

    İlk kez Prism'e geçtiğimde exactly the same problem kullanmıştım.

    ControllersPresenters mantık, oysa bir View özgü olduğunu, bir tüm modülü kapsayan mantık için temelde. Örneğin, PresenterPresenter, görünüm devre dışı bırakıldığında bir düğmeyle sonuçlanan bir komuta yanıt verebilir. Controller, View (ve Presenter) değerinin tamamen değiştirildiği veya modülün kabuğunda farklı bir bölgeye farklı bir Görünüm/Sunucu yükleyen bir komutla yanıt verir.

    Düzenleme: Bunları ne zaman kullanacağınız ile ilgili olarak, yukarıda belirtilen düzenlemeye gerek duymuyorsanız, Controller'u atlayabilirsiniz. En basit uygulama sadece sahip olacaktır:

    • Module: Region
    • Presenter içine görünümü/sunumu yapan kaydeder: görünümden komutlara yanıt ve ViewModel değiştirir.
    • ViewModel
    • : adaptör INotifyPropertyChanged
    • View uygular Presenter ve View arası: ViewModel bağlanır ve UI
    • görüntüler

    Düzenleme: ViewModel vs Presenter gelince, senin mantığın en çok Presenter'da olmalıdır. ViewModel'inizi, görüşünüze göre mantığı barındıracak şekilde düşünün, ancak Sunum, görüşle etkileşimin sonuçlarıyla ilgileniyor. Örneğin, kullanıcı View'unuzdaki "Ara" düğmesini tıklatır. Bu, Presenter tarafından işlenen ICommand'u tetikler.Presenter, aramaya başlar ve CanSearch için PropertyChanged bildirimini tetikleyen ViewModel.IsSearching özelliğini ayarlar. CanSearch, diğer birçok özelliğe dayalı bir salt okunur özelliktir (ör. IsSearchEnabled && !IsSearching). View'daki "Arama" düğmesi CanSearch'a bağlı Enabled özelliğine sahiptir. Burada Bence Denetleyicisi olarak

    +0

    Oh, bu yüzden sadece mevcut görünümde (Presenter) neler olduğu ve modülde (Kontrolör) ne olduğu arasındaki ayrımdır. Aslında ViewModel'deki tüm mantıksal şeyleri yapıyorum. Bu yanlış mı yoksa bu sadece stratejik bir seçim mi? – SandRock

    +0

    'Prism' sadece bir öneridir. Bunu söyledikten sonra, cevabımı bazı VM ve Presenter bilgileriyle güncelledim. –

    +0

    Harika, artık her şey kafamda açık. Bunu şimdi deneyeceğim. Zaman ayırdığınız için teşekkürler :) – SandRock

    İlgili konular