c# - WPF MVVM Load UI控件异步

标签 c# asp.net wpf mvvm asynchronous

我有一个mvvm wpf应用程序,可以一次性加载包含许多控件的窗口。我希望此窗口分别和异步加载控件。

有什么建议?

最佳答案

为此,我使用了Singleton模式。如果您熟悉PRISM及其 bootstrap ,则有点类似。

这里的主要思想是重写App.xaml中的OnStartup方法。默认行为显示在xaml StartupUri="MainWindow.xaml"中,您必须删除该属性。

OnStartup重写方法中,我使用一个类来创建我的所有对象(Views,ViewModels,link DataContexts ...),并在初始化完成时触发一个事件。

目前,我关闭了启动画面,并显示了一个已满载的应用程序(创建InitializeComponent时会调用MainWindow,因此此时它已被调用)。

为了更广泛的使用,您可以在Windows中添加事件,并在bootstrapper类中添加EventHandler。例如,当我想完全刷新我的应用程序(重新启动它)时,以及在数据库请求(在我的情况下,仅在应用程序启动时执行以加载引用)时,都使用它。

希望它能帮助:)

关于c# - WPF MVVM Load UI控件异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6610656/

相关文章:

asp.net - 删除 Umbraco 的通知并显示我自己的通知

c# - 在属性更改时触发 ListViewItem 行为?

c# - MVVM 模式和半全局数据

c# - 用具体实现 C# 替换基类

c# - 为什么不自动调用 TestInitialize?

c# - Xamarin 形成包含适用于 Android 和 iOS 的图像的共享项目

c# - 将除法舍入为整数的正确方法是什么?

.net - 任何人都使用ASP .NET成员资格吗?

.net - WPF 运行时 xaml/表单设计器

jquery - 如何将 iframe 中的图像复制到文本区域?