具體來說,在這種情況下,應用程序本身就是收件人。我的思考過程是,在處理創建新視圖的場景時,這將允許視圖和視圖模型之間的最小可能聯繫:它們將嚴格處理消息,並且WPF應用程序的應用程序級別將處理這些消息,根據需要創建新的視圖(並通過這些視圖的DataContext隱式地查看模型)。從XAML註冊MVVM Light中應用程序級別的消息收件人?
據我所知,這足夠簡單,如果我進入代碼隱藏(app.xaml.cs)。不過,我最好喜歡在xaml中處理這個消息接收者註冊,如果可能的話,因爲行爲相當直接,所有它真正要做的就是調用ShowDialog來獲得適當的View(我認爲沒有進一步的處理是需要,但我可能會忘記一些東西)。 (我知道MVVM並不真的禁止使用代碼隱藏,而且我用這個讓自己變得更難,但是我認爲如果不違反其他MVVM原則,它可能會改善代碼組織)。當我考慮使用System.Windows.Interactivity並將EventTrigger綁定到Application類的Startup事件時,我想我已經擁有它了,但是當我發現它需要擴展DependencyObject以使其工作時被挫敗。
總之,我的問題是雙重的: 答:是否有可能在涉及創建視圖的消息子集的app.xaml中處理消息接收者註冊。 B.這是一個適當的結構來嘗試和應用,或者我的想法是關於如何組織處理與其他視圖相關的消息的責任。如果這不是一個合適的方法,有沒有更簡單的方法或更好的方法?