Well I’ll be… I stand corrected!
I recently published a blog post stating that you need to declare a command as ICommand (instead of RelayCommand) if you want it to work in Windows 8. I even went as far as to modify the MVVM Light code snippets that are used to create commands.
In fact, scratch that post… I was wrong! I got a few people writing to me and letting me know that RelayCommand works just fine for them. And now, after I tested again, I cannot reproduce the issue! So I need to be clear, my first post was wrong, and I stand corrected.
Based on the feedback, I will also set the MVVM Light snippet back to expose the command as RelayCommand instead of ICommand. It would indeed be “purer” as ICommand, but it also causes issues (such as the need to cast to call RaiseCanExecuteChanged) and is not worth it.
Sorry about the confusion folks!!