我在我的Wpf應用程序中使用Prism進行導航。我有幾個模塊,每個模塊都通過使用引導程序中的IoC容器發送的常用命令在主菜單中註冊。菜單條目綁定到常見的導航命令 - 這將在某些區域打開正確的視圖。全部基於我通過Prism網站找到的建議。棱鏡 - 有條件導航
我現在的問題是,我有一個模塊,其中有一個條件說明如果我想打開主區域中的ViewA或ViewB。示例:假設我有一個客戶模塊 - 然後是一個「客戶」菜單項,它將在主視圖中打開客戶模塊。還有一個條件:如果我有一個活躍的客戶,我想在點擊菜單項時打開CustomerDetailsView,否則我想打開CustomersAdminView。
解決此問題的建議方法是什麼?我看到了一些選擇,但我認爲他們都聽起來有點冒失。現在我正在創建上面示例中的MasterCustomerView。然後這個視圖將檢查條件並打開UserControl,給出Admin的詳細信息。儘管我對這個解決方案並不滿意 - 它會是一種合法的方法嗎?好點?
感謝您的回覆。我開始實施類似的方法,但很顯然,這會變得有點複雜。所以如果有更好的解決方案,我想這樣做。研究用事件聚合來解決問題。看起來很有希望。 – stiank81
我以前見過一個事件聚合器解決方案,並且肯定會起作用(這是我最初的方式),但它變得非常混亂,並且您失去了關注點分離......您正在使模塊負責操作菜單系統。它*起初感覺不錯,但很快變得難以管理,特別是如果您有其他開發人員製作模塊。 –
對我來說,看起來合理的是,模塊本身在需要時決定做什麼。這樣做菜單項只是一個標題和點擊時觸發的事件。至少現在我發現這比在菜單項中構建邏輯更合理。 – stiank81