2012-02-07 174 views
1

我對棱鏡很陌生。我正在學習隨附的QuickStarts以及網上的其他示例。幾乎所有這些模塊都會使模塊意識到他們的視圖被放入哪個區域。通常,模塊的Initalize方法具有類似於以下的行。棱鏡,映射區域到視圖

RegionManager.Regions["LeftRegion"].Add(fundView); 

我覺得很不舒服。有一個similar discussion,但我認爲應該由shell組件負責定義這種映射。然而,我找不到任何這種方法的例子,我不確定引導程序是否是放置這種映射的正確位置。

這種方法是完全錯誤的嗎?

回答

0

沒有什麼是完全錯誤的。但是使用shell/bootstrapper(根據設計不知道它將託管的應用程序的任何內容)知道哪個視圖進入哪個區域是沒有意義的。

考慮一個可以通過簡單地將模塊添加到給定文件夾來擴展的應用程序。當你按照模塊知道視圖想要駐留的方式(映射在Initialize()中完成)時,這不成問題。我這樣設計了我的第一個Prism應用程序。

但是,如果您的映射在您的shell中完成,那麼當您要添加其他模塊時,您總是必須更新您的shell(它是基本應用程序的一部分,而不是任何模塊)。這與鬆散耦合範例相反。除此之外,您必須爲每個模塊星座創建一個基本應用程序。還有(2 ^個模塊)排列必須包括在內。這會導致您失去使用Prism獲得的靈活性。