我很难理解在更复杂的应用程序中如何使用 MVVM。我能找到的所有示例都是非常基本的应用程序。
假设我有一个“包裹递送”应用程序。要执行交付,我必须执行 3 个步骤:
所有这些信息都会在设备上进行验证,然后发送到后端。
在 MVC 中我会这样实现:
处理DeliveryController
所有逻辑。这包括页面之间的导航、获取 API 数据以及在收集完所有数据后验证所有数据。
控制器充当视图之间的“连接”,收集所有信息并将其组合在一起。
但是这在 MVVM 中是如何完成的呢?所有数据将在哪里汇集?我能找到的大多数 MVVM 实现都是这样的:
在这种情况下,每个视图中输入的数据必须传递到下一个视图,ViewModel
直到到达链的末尾。此时将SignatureViewModel
进行验证并进行 API 调用。这看起来很奇怪,而且会变得非常混乱,因为数据只是“传递”多个,ViewModels
只是为了将其放在链的末尾。
我看到的另一个选择是每个 ViewModel 处理它自己的数据:
例如,这里DamagesViewModel
将验证并发送它自己的视图句柄的数据。这样做的一个大问题是数据没有作为一个整体发送。此外,在发送之前无法对整个数据进行任何验证。
我最后的想法是这样的:
这增加了一个DeliveryViewModel
要点,其作用类似于DeliveryController
MVC 中的作用。它将处理哪个ViewModel
下一步导航到哪个、处理要进行哪些 API 调用并在输入数据后验证所有数据。
对于我(作为一个主要使用 MVC 的人)来说,最后一个选项似乎是最明智的。但我也觉得它可能没有抓住 MVVM 的重点。
这在 MVVM 中通常是如何完成的?我真的很感激任何指点。非常感谢能够很好地解释这一点的文章链接。
另外,如果有人知道任何公开可用的存储库或项目中有这种模式,我很乐意看到它们。
我试图让我的程序,使用SQL Server,在另一台机器上可用.我知道该机器需要安装SQL Server客户端才能工作,但我想知道我的ConnectionString是否可以在我自己的PC之外工作.
我是否需要将数据库附加到项目中?如果是这样,我怎么能这样做?
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.\BENESQL;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=123qwe;" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)