gpt4 book ai didi

c# - mvvmlight Windows 8 Metro异步加载ViewModel构造函数中的数据

转载 作者:行者123 更新时间:2023-12-03 10:37:48 24 4
gpt4 key购买 nike

我正在Metro应用程序中使用MVVMLight框架。我首先在ViewModel构造函数中加载数据,然后一切正常。在构建即将结束时,我在app.xaml中引入了一些额外的异常处理。

TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;

这开始引发很多有关未正确等待任务的错误。

我将ViewModel构造函数的数据加载调用移至我的页面LoadState方法中,并在那里等待它们,并且一切正常。但是,我读到这可能是不好的做法。

我应该以某种方式向ViewModel构造函数引入异步调用吗?有兴趣的是什么是最佳实践?也许我应该删除异常处理程序!

在这里提出了类似的问题:
MVVM view model and async data initialisation

最佳答案

不知道在何处看到在LoadState中进行数据调用加载是一个坏习惯,在大多数情况下,您甚至无法在加载状态之前加载数据,因为您需要LoadState传递任何参数。另外甚至不需要参数,我个人更喜欢在LoadState中加载数据,因为在构造函数中开始加载它意味着您将在页面加载时花费一些cpu时间,因此它将花费更长的时间来加载页面加载。我看到在构造函数中加载它的唯一原因是,以便在设计时加载数据(因为将调用 View 模型cosntructor而不是LoadState),但是为此您可以添加一个条件(ViewModelBase.IsInDesignModeStatic)来调用load。在构造器中进行设计时

关于c# - mvvmlight Windows 8 Metro异步加载ViewModel构造函数中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19207278/

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