我有一个实现 MVVM 模式的 WPF 窗口。该窗口显示用户应该从中选择的可用麦克风列表。然后将选定的麦克风存储在我们的存储库中。所有这一切都很好,但这是问题所在。当您插入新麦克风时,主窗口会启动,并显示一条消息,例如:“插入了新设备,您要选择它吗”。如果他们单击此消息,则应该会弹出选择窗口,其中包含已选择的新设备。但是,我试图将 UI 保持为真正的 MVVM 模式,xaml 后面没有代码。以下是我想到的一些选项,但不确定是否有“正确”的方法来做到这一点。
- 有一个通用的全局动作控制器,它将被传递到 ViewModel。然后 ViewModel 可以订阅一个事件,例如
SelectionChangedEvent
- 这样做的问题是窗口(以及视图模型)可能尚未打开,因此消息会丢失。
- 使用上面的选项,但是让动作控制器总是首先加载窗口。这将解决 ViewModel 不可用的问题。
- 其他一些我没有想到的解决方案?