2009-11-30 46 views
0

我有一個Silverlight Prism應用程序,其中包含一個帶有登錄控件的工具欄模塊。我目前在主區域有一個模塊,設置爲InitializationMode.OnDemand在引導程序中,並且可以通過ModuleManager.LoadModule()在工具欄模塊中成功登錄後加載它。然而,這並不正確,因爲它實質上是將工具欄模塊緊密連接到登錄後加載的模塊。Silverlight Prism - 成功登錄後的加載模塊/模塊之間的依賴關係

現在的問題......這是最好的做法,或者我應該追求沿着從工具欄模塊養CompositePresentationEvent和具有殼加載相應的模塊線的東西?或者還有其他選擇嗎?我正在構建這個應用程序,試圖更多地瞭解Prism,並且我想確保我儘可能遵循最佳實踐。

回答

1

我更喜歡這種情況下的EventAggregator方法。我不喜歡一個模塊知道另一個模塊。最多的時候,殼牌應該對其他模塊有所瞭解,但是它們不應該那樣相互交流。

由於這更多是一個shell的責任,你有沒有考慮將其烘焙到shell本身?如果它們在邏輯上相同,除非您打算經常更換工具欄,否則沒有太多理由將它們分開。我通常會將菜單烘焙到shell中,並通過像IMenuRegistry之類的服務爲模塊提供菜單貢獻。只是一個建議。

+0

在這裏考慮很多。感謝您花時間回答。我不希望經常更換工具欄(如果有的話),但我還沒有進入EventAggregator,因此我可能會沿着這條路線進一步瞭解它。 – 2009-12-03 21:31:55