2012-02-19 6 views
5

me di cuenta de que el siguiente código:¿IsEnabled vinculante es opcional cuando se vincula el comando?

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}" 
    IsEnabled="{Binding Path=CanExecuteShowTimbresCommand}"/> 

comporta igualmente:

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}"> 

Lo que significa que el CanExecuteShowTimbresCommand se enlaza automáticamente a la propiedad IsEnabled. ¿Es cierto y por qué?

Respuesta

10

Por lo general, controles que aceptar una Command fijará IsEnabled a false si de CanExecute el comando es false, eso es todo lo que hay que hacer.

MSDN:

Otro propósito de comandos es para indicar si una acción está disponible. [...] Un botón puede suscribirse al evento CanExecuteChanged y deshabilitarse si CanExecute devuelve falso o se habilita si CanExecute devuelve verdadero.

+0

Gracias ... eso significa que puedo eliminar una gran cantidad de código XAML. –

+1

@MichelKeijzers: Si hasta ahora siempre ha tratado con 'IsEnabled', ese es realmente el caso. –

+0

Sí, actualmente tengo en todas partes un comando vinculante junto con IsEnabled = CanExecute para ese mismo comando. Supongo que la edición adicional que hizo en la respuesta se hace automáticamente. –

Cuestiones relacionadas