したがって、View の Loaded イベントを ViewModel のコマンドにバインドするために、GalaSoft の EventToCommand を使用しています。バインディングはうまく機能していますが、私のコマンドが実行されることはありません。これを機能させる唯一の方法は、View のコード ビハインドで Loaded イベントを処理し、DataContent を VM にキャストして、コードを実行するように指示することです (コマンドが実行しようとしています)。明らかに、MVVM のようにすべてを実行しようとすると、これはあまり良くありません。参考までに、私は MouseEnter イベントを試してみましたが、うまく機能したので、タイミングの問題だと思います。また、私のビューはユーザー コントロールです。
意見:
<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 内でのアクションには疑問があります。誰かが私が間違っていることを見ていますか?