WPF:视图呈现后在MVVM中调用命令?
我正在设计一个WPF应用程序并使用MVVM模式。假设我有一个名为WPF:视图呈现后在MVVM中调用命令?,wpf,vb.net,mvvm,command,Wpf,Vb.net,Mvvm,Command,我正在设计一个WPF应用程序并使用MVVM模式。假设我有一个名为View1的视图,它的DataContext在它的contractor中设置为ViewModel1。VM有一个名为RefreshCommand的命令,其任务是计算要在视图上显示的数据。现在我想在显示视图后立即调用这个refresh命令,但我不知道怎么做 我试图在代码隐藏中调用它,在那里我处理usercontrol的Loaded事件,如下所示: Private Sub AfterLoad(sender As Object, e As
View1
的视图,它的DataContext
在它的contractor中设置为ViewModel1
。VM有一个名为RefreshCommand
的命令,其任务是计算要在视图上显示的数据。现在我想在显示视图后立即调用这个refresh命令
,但我不知道怎么做
我试图在代码隐藏中调用它,在那里我处理usercontrol的Loaded
事件,如下所示:
Private Sub AfterLoad(sender As Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
RefreshButton.Command.Execute(sender)
End Sub
然而,这时我注意到,RefreshButton.Command
仍然设置为Nothing
。请注意,在UI交互中,可以调用此按钮/命令。那么我应该在什么时候调用命令来执行这样的操作呢?谢谢 看起来应该行得通。显示您的XAML和viewmodel
通常我会让我的虚拟机立即获取数据,并通过绑定在视图中显示数据。尝试在VM构造函数中执行Refresh命令,看起来应该可以正常工作。显示您的XAML和viewmodel?听起来确实有点奇怪。我想通常我会让我的虚拟机立即获取数据,并通过绑定在视图中显示数据。您确定要视图启动数据加载吗?@Alan感谢您的回复。当然行了!现在我只调用VM的contractor的最后一行中的命令exec函数。它正在发挥作用。此UserControl实际上包含一个AX Windows窗体控件(来自OWC的数据透视表),因此VM和视图以某种方式相互混淆:VM必须从视图中知道数据透视表成员。这就是我感到困惑的原因。但不管怎样,它现在起作用了。谢谢很高兴你让它工作了,我回复了我的评论作为回答,因为你让它工作了。