gpt4 book ai didi

.net - MVVM 中的启动逻辑应该放在哪里?

转载 作者:行者123 更新时间:2023-12-04 02:58:44 27 4
gpt4 key购买 nike

我正在使用 MVVM 编写我的第一个 WPF 应用程序,我对 View 模型的角色以及我应该在哪里放置应用程序启动时应该运行的代码感到困惑。

我的应用程序非常简单。它列出了来自远程位置的文件,然后用户可以从中选择以复制到他们自己的计算机上。当应用程序第一次启动时,它必须从配置文件中确定当前文件的来源,从源中读取当前文件,并在主窗口中将它们列出给用户。如果找不到配置的文件源,则会提示用户选择一个源。

这个逻辑应该放在 ViewModel 中吗?如果是这样,它应该进入 View 模型的构造函数吗?这似乎不对,因为我不希望 ViewModel 读取配置文件,并在实例化时提示用户。

如果这是一个 WinForms 应用程序,我会在 Form.Load 或 Form.Shown 事件中执行此操作。

最佳答案

通常主要的数据加载代码可以保存在单独的 View 模型函数中,例如 ViewModel.Initialize() ...更重要的是在后台线程上,因为它在执行时不会挂起 GUI,直到那一刻你可以在 GUI 上显示一个忙碌的服务员目标。

你可以做到Command为您轻松驱动(例如 Relay/DelegateCommand,例如 InitilizeCommand )和 Initialize()方法可以是命令的Execute代表。
Initialize()可以根据您的方便调用...从 ViewModel 的构造函数开始,或处理 Window/UserControl.Load使用附加行为的事件并安排“ViewModel.Initialize()”函数,只要该函数在不同的后台线程上,我们就可以了。

如果您使用 PRISM 的模式和实践,像这样的数据加载,可以作为 Prism 所代表的复合 GUI 整体设计的一部分自动安装到特定模块中。

一个好的 MVVM 教程在这里... http://msdn.microsoft.com/en-us/library/gg405484%28v=pandp.40%29.aspx

关于.net - MVVM 中的启动逻辑应该放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11132076/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com