我正在寻找一个关于如何使用 Prism 实现事件聚合器的好(阅读:简单)示例。我从未使用过 Prism,而且我对 MVVM 本身也很陌生。
我有一个 WPF Canvas 作为 View ,我想在 Viewmodel 中处理 Canvas 上的 MouseUp 事件。现在,我们组织的高层希望我使用 Prism,显然 Prism 推荐使用事件聚合器,这就是为什么我需要一个示例来让我开始。
最佳答案
为此,您只需要来自 MVVMLight 或来自 System.Windows.Interactivity (Blend SDK) 的 EventToCommand 行为。我建议您使用 MVVMLight 版本,因为它有一些有用的特色:)
<Canvas>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseUp" >
<i:InvokeCommandAction Command="{Binding YourMouseUpViewModelCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Canvas>
Prism 中的 EventAggregator 我主要用于解耦 Viewmodel 到 Viewmodel 的通信。
关于MVVM View 事件 Viewmodel 命令绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11030417/