Execute実行前にはCanExecuteが呼び出されるから不思議じゃない
RaiseCanExecuteChangedを使うのはファイルが削除された瞬間にボタンが押せなくなるような処理を組んだ場合