【问题标题】:WPF: call Command in MVVM after view is rendered?WPF:视图渲染后在 MVVM 中调用命令?
【发布时间】:2013-05-17 14:14:24
【问题描述】:

我正在设计一个 WPF 应用程序并使用 MVVM 模式。假设我有一个名为View1 的视图,它的DataContext 在它的承包商中设置为ViewModel1。 VM 有一个Command,称为RefreshCommand,其工作是计算要在视图上显示的数据。现在我想在我的视图显示后立即调用此RefreshCommand,但我不知道该怎么做。

我尝试在处理用户控件的Loadedevent 的代码隐藏中调用它,如下所示:

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 和视图模型?这听起来像是半奇怪的请求。我认为通常我会让我的虚拟机立即获取其数据并通过绑定在视图中显示数据。您确定要让 View 启动数据加载吗?
  • @Alan 感谢您的回复。当然有效!现在我只是在VM的contractor的最后一行调用命令的exec函数。它正在工作。这个 UserControl 实际上包含一个 AX Windows 窗体控件(来自 OWC 的 PivotTable),因此 VM 和 View 以某种方式相互混淆:VM 必须知道来自 View 的 PivotTable 成员。这就是为什么我感到困惑。但无论如何,它现在正在工作。谢谢!
  • 很高兴你让它工作,我重新发布我的评论作为答案,因为你让它工作。

标签: wpf vb.net mvvm command


【解决方案1】:

看起来应该可以。显示您的 XAML 和视图模型?

通常我会让我的虚拟机立即获取其数据并通过绑定在视图中显示数据。尝试在 VM 构造函数中执行 Refresh 命令

【讨论】:

    猜你喜欢
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    相关资源
    最近更新 更多