.net mvvm light toolkit未触发窗口加载事件

.net mvvm light toolkit未触发窗口加载事件,.net,wpf,mvvm,mvvm-light,.net,Wpf,Mvvm,Mvvm Light,我有一个窗口,使用MVVM light toolkit绑定到加载的事件: <Window ... xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WPF4" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Intera

我有一个窗口,使用MVVM light toolkit绑定到加载的事件:

    <Window 
      ...
      xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WPF4"
      xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
      ...
      >

      <i:Interaction.Triggers>
        <i:EventTrigger EventName="Loaded">
          <cmd:EventToCommand Command="{Binding Loaded, Mode=OneWay}" />
        </i:EventTrigger>
      </i:Interaction.Triggers>
    </Window>
但是在显示的窗口中,当我在Loaded属性中放置断点时,虽然ICommand变量正在初始化,但不会引发异常。我尝试过使用初始化事件,但仍然是一样的。这在同一个应用程序中的另一个窗口中运行良好,因此我几乎可以肯定我做的每件事都是正确的-可能我遗漏了什么?当我绑定代码隐藏时,它工作得很好,但我希望遵循mvvm模式。
提前感谢。

尝试在构造函数中分配命令,即

public ViewModel() {
    _loaded = CreateAsyncRelayCommand(p => OnLoaded());
}

尝试在构造函数中分配命令,即

public ViewModel() {
    _loaded = CreateAsyncRelayCommand(p => OnLoaded());
}

您可以发布用于CreateAncyncRelayCommand的代码吗?我用一个标准的RelayCommand试过了,效果如预期。你能发布你用于CreateAsyncRelayCommand的代码吗?我用一个标准的RelayCommand尝试了一下,它果然起了作用。