我在尝试了解如何在我的应用程序中实现 MVVM 模式时遇到问题。这是一个小型应用程序,我将解释它的作用。
我的应用程序创建文件备份。UI 允许用户选择他们想要备份的文件夹以及应该备份的位置。做出选择后,他们单击“开始”按钮。
然后,这会将文件夹源和文件夹目标传递给类库(称为 backup.cs),该类库会创建每个文件夹内所有文件的备份。在此期间,会创建一个日志 (Log.cs),记录每个阶段以及它尝试备份的每个文件的状态(完成、失败、其他等)。现在,日志仅在内存中。
备份完成后,我希望打开一个窗口(视图),其中将显示所有日志。在这一点上,我无法理解如何使用 MVVM 模式。
就目前而言,我将我的日志(以分层方式保存数据)传递给我的 MainWindow 的构造函数并绑定到数据上下文,使用我的 xaml 中的树视图,我得到了所需的结果。但是,我现在想使用 MVVM。
我的问题与我之前的问题非常相似,您可以看到答案是将日志作为参数传递给 ViewModel 构造函数。问题是,我不知道该怎么做,还显示一个窗口!
我可以实现这一点的唯一方法(在我的脑海中)是将日志作为参数传递给我的视图的构造函数,但这违背了 MVVM 的观点。我可以将参数传递给我的 ViewModel 的构造函数(这将符合 MVVM 模式),但这是否意味着我还必须从我的 ViewModel 构造函数创建我的视图实例?否则我要做的就是创建我的 ViewModel 但由于没有显示视图,因此无法显示结果。
我希望我已经清楚地解释了我在哪里挣扎,有人可以提出前进的方向吗?