Недавно я использовал набор инструментов MVVM light для Silverlight 4.
Мне очень нравится включенное поведение EventToCommand, оно значительно упрощает жизнь. Одна вещь, о которой я задавался вопросом, заключается в том, что установка PassEventArgsToCommand="True"
является плохой практикой, поскольку она свяжет конкретную команду RelayCommand с конкретным событием в представлении.
Например. Если моя RelayCommand определена как:
public RelayCommand<System.Windows.Input.KeyEventArgs> myCommand
Тогда это может быть вызвано только событием KeyUp, KeyDown и т.д.
Я думал, что ViewModel не должен иметь знаний о пользовательском интерфейсе (например, выставлять логический преобразователь и использовать преобразователь, чтобы изменить его на видимость), разве PassEventArgsToCommand не нарушает это?