具体来说,在这种情况下,应用程序本身就是收件人。我的思考过程是,在处理创建新视图的场景时,这将允许视图和视图模型之间的最小可能联系:它们将严格处理消息,并且WPF应用程序的应用程序级别将处理这些消息,根据需要创建新的视图(并通过这些视图的DataContext隐式地查看模型)。从XAML注册MVVM Light中应用程序级别的消息收件人?
据我所知,这足够简单,如果我进入代码隐藏(app.xaml.cs)。不过,我最好喜欢在xaml中处理这个消息接收者注册,如果可能的话,因为行为相当直接,所有它真正要做的就是调用ShowDialog来获得适当的View(我认为没有进一步的处理是需要,但我可能会忘记一些东西)。 (我知道MVVM并不真的禁止使用代码隐藏,而且我用这个让自己变得更难,但是我认为如果不违反其他MVVM原则,它可能会改善代码组织)。当我考虑使用System.Windows.Interactivity并将EventTrigger绑定到Application类的Startup事件时,我想我已经拥有它了,但是当我发现它需要扩展DependencyObject以使其工作时被挫败。
总之,我的问题是双重的: 答:是否有可能在涉及创建视图的消息子集的app.xaml中处理消息接收者注册。 B.这是一个适当的结构来尝试和应用,或者我的想法是关于如何组织处理与其他视图相关的消息的责任。如果这不是一个合适的方法,有没有更简单的方法或更好的方法?