我正在使用MVVM模式处理一些.Net XAML应用程序。 根据MVVM,我将我的应用程序逻辑保存在VM中,在Code Behind中,我执行与UI相关的操作。 但我需要在Code Behind中执行一些与UI相关的代码,以响应VM中的某些逻辑。
实施例: 我需要在登录操作失败时显示错误消息(在我的情况下为自定义Toast通知)。登录操作驻留在VM中,但是我不能在我的VM中使用任何特定于UI的类,所以我在VM中创建了一个事件并在Code Behind中连接到了UI的东西。
是否违反了MVVM模式?如果是,那么如何解决我的情况?
答案 0 :(得分:4)
理想情况下,通过Mediator完成MVVM模式中View和ViewModel之间的通信,以避免从VM硬引用View。有调停员,
上面的CodeProject链接显示了如何实现中介类。但我建议使用popular MVVM framework,因为你会发现它有Mediator实现,还有许多其他MVVM工具可以开箱即用。