所以我使用GalaSoft的EventToCommand将我的View的Loaded事件绑定到我的ViewModel中的命令。绑定工作得很好,但我的命令永远不会被执行。我能够让它工作的唯一方法是在我的View代码中处理Loaded事件,然后将我的DataContent转换为我的VM并告诉它运行我的代码(命令正在尝试这样做)。显然,当尝试所有MVVM时,这并不是很好。仅供参考,我确实尝试过MouseEnter事件并且效果很好,这让我觉得它是一个时间问题。此外,我的View是一个用户控件。
查看:
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<cmd:EventToCommand PassEventArgsToCommand="False" Command="{Binding Path=DownloadDataCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
视图模型:
public RelayCommand DownloadDataCommand
{
get { return new RelayCommand(() => DownloadDataAsync()); }
}
我试过调用几乎没有做任何事情的简单方法,但仍然没有调用我的中继命令。所以我怀疑它在RelayCommand中的行动。有谁看到我做错了什么?