WPF-视图打开时MVVM启动操作

本文关键字:MVVM 启动 操作 视图 WPF- | 更新日期: 2023-09-27 18:29:31

我正在编写一小段MVVM用于培训,以了解该功能。

我已经为我的图像模型类创建了一个模型,这样每个图像项目都包含一个ID、名称、链接和其他东西,比如高度和宽度等。

我也创建了一个视图来显示数据。没什么新奇的。只是一个简单的ItemsControl,它在启动时被放在我的MainWindow网格中。

我现在正在创建ImageViewModel类,这是我有点磕磕碰碰的地方。

我已经这样定义了这个类——不确定我做得是否正确:

public class ImageViewModel : Screen 

我还写了一些代码,软件应该执行这些代码来从网络中获取数据,只需解析内容,并为网络上的每个可用新项目检索一个新的Image项目。当我在没有MVVM功能的情况下对此进行编码时,代码应该可以很好地工作,因为它可以完美地工作。

我的问题是,我不知道如何在启动时在我的MainWindow网格中加载视图的那一刻启动该操作(称为public void FindNewImages)。。。我怎样才能做到这一点?

WPF-视图打开时MVVM启动操作

这取决于如何连接视图和视图模型。听起来您可能是先做视图,其中您的视图模型是视图的资源。在这种情况下,您可以在视图模型的构造函数中调用FindNewImages方法。

然而,我强烈建议您使用MVVM框架,例如Caliburn.Micro,它提供屏幕生命周期。在这种情况下,您可以使用视图模型优先的方法,并在Caliburn.Micro.

提供的Screen类型的OnActivate方法中调用您的方法