我有一个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/