首页 > 解决方案 > 在事件上使用 GUI 功能 (MVVM)

问题描述

我最近开始使用 Xamarin 和 MVVM 进行开发,但遇到了一个问题,我真的不知道如何解决。

我将我的事件绑定ViewICommand我的ViewModel. 但是这些事件应该能够触发例如一个DisplayAlert或一个Navigation.PushAsync呼叫。

现在我知道这些问题有一些解决方法,但不会引用违反 a 预期用途的Navigation对象,因为它不知道?ViewModelViewModelView

我真的很想保持一个严格的、纯粹的 MVVM 模式,那么我该如何实现呢?

编辑

感谢您的回答。我进行了更多搜索,发现这篇Xamarin.forms博文中提到了一些库,这似乎有帮助。

我将尝试prism,它具有 aNavigation Service和 a Page Dialog Service

编辑 02

否则,您可以使用@Julien 提到的MessagingCenter 。

标签: c#xamarinmvvmxamarin.forms

解决方案


您提出的问题在 MVVM 世界中非常常见,这将其变成了自以为是的话题。一些开发人员认为您应该首先在 Pages / Views - V 之间导航,其他开发人员认为您应该首先在 ViewModels - VM 之间导航。两者都有各自的优点和缺点,并且在 WWW 上有很多关于它的资源。

我建议熟悉这两种不同的方法,然后决定使用哪一种。你可以检查现有的 MVVM 框架,看看它们是如何解决这个问题的。幸运的是这个话题很有趣,所以你应该享受调查之旅。

很可能不会有适合不同类型项目的灵丹妙药。要时刻铭记在心。

祝你好运!


推荐阅读