C# 使用MVVM加载视图/用户控件时显示进度对话框:我应该使用哪些事件?
我想在打开需要一段时间才能打开的C# 使用MVVM加载视图/用户控件时显示进度对话框:我应该使用哪些事件?,c#,wpf,events,mvvm,C#,Wpf,Events,Mvvm,我想在打开需要一段时间才能打开的视图/用户控件时显示一个加载对话框。我知道我可以使用Loaded事件来关闭UI布局和显示后的对话框。我在下面显示的示例代码中这样做 我的问题是:在布局/加载过程开始时,是否有任何事件可以用类似的方式打开对话框 我可以从打开此视图的ViewModel中打开加载对话框,但这会扩展逻辑。此外,由于我使用消息传递(来自MvvmLight)向视图/用户控件发送信号以加载它,这将导致IMO的解决方案不干净。因此,有什么想法可以实现这一点吗 查看: <i:Interact
视图
/用户控件
时显示一个加载对话框。我知道我可以使用Loaded
事件来关闭UI布局和显示后的对话框。我在下面显示的示例代码中这样做
我的问题是:在布局/加载过程开始时,是否有任何事件可以用类似的方式打开对话框
我可以从打开此视图的ViewModel
中打开加载对话框,但这会扩展逻辑。此外,由于我使用消息传递(来自MvvmLight)向视图
/用户控件
发送信号以加载它,这将导致IMO的解决方案不干净。因此,有什么想法可以实现这一点吗
查看:
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding ViewLoadedEventHandlerCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
private ICommand viewLoadedEventHandlerCommand;
public ICommand ViewLoadedEventHandlerCommand
{
get
{
if (viewLoadedEventHandlerCommand == null)
viewLoadedEventHandlerCommand = new RelayCommand(() => Debug.WriteLine("MainView was loaded."));
return viewLoadedEventHandlerCommand;
}
}
最简单的方法是在应用程序UI上使用覆盖控件,该控件在后台线程上加载时显示。这里有很多控件以及如何使用它们的示例。加载数据覆盖UI等时显示/隐藏覆盖