¿Cómo puedo usar RelayCommand en wpf?

¿Cómo puedo usar RelayCommand en RelayCommand ?

El comando de retransmisión no existe en WPF, es solo una clase externa que se elevó a la prominencia después de que se definió en este artículo de MSDN . Debe escribirlo usted mismo si quiere usarlo.

De lo contrario, puede utilizar el comando Delegar del kit de herramientas de WPF , que tiene un poco de funcionalidad adicional sobre el código RelayCommand.


Ah, la pregunta cambió mientras escribía esta respuesta. Suponiendo que está utilizando el RelayCommand como se define más arriba, debe proporcionar uno o dos delegates, uno que devuelva un bool que determine si el comando está en un estado válido para ejecutarse, y un segundo que no devuelve nada y realmente ejecuta el mando. Si no proporciona un delegado “CanRun”, el comando considerará que siempre está en un estado válido. El código utilizado en el artículo:

 RelayCommand _saveCommand; public ICommand SaveCommand { get { if (_saveCommand == null) { _saveCommand = new RelayCommand(param => this.Save(), param => this.CanSave ); } return _saveCommand; } } 

Declara un RelayCommand que llamará al método Save () cuando se active y devuelva la propiedad CanSave como una prueba de validez. Cuando este comando está vinculado a un botón en WPF, la propiedad IsEnabled del Botón coincidirá con la propiedad CanSave del ViewModel y cuando se hace clic en el botón (suponiendo que esté habilitado) se llamará al método Save () en el ViewModel.

Como alternativa a la creación de envolturas RelayCommand para todos sus métodos, puedo sugerir una biblioteca y fuente gratuitas que le permitirán usar el enlace {BindTo Save()} . Lo creé para simplificar mis enlaces. También hace que la vinculación relativa sea mucho más fácil. Puede encontrarlo aquí: http://www.simplygoodcode.com/2012/08/simpler-wpf-binding.html