2012-02-19 4 views
5

ho notato che il codice seguente:È obbligatorio IsEnabled facoltativo quando si esegue il comando di associazione?

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

si comporta altrettanto:

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

che significa che il CanExecuteShowTimbresCommand viene automaticamente associato alla proprietà IsEnabled. È vero e perché?

risposta

10

controlla solito che accettano un Command imposterà IsEnabled-false se il comando è CanExecutefalse, questo è tutto quello che c'è da fare.

MSDN:

Altro scopo è quello di indicare comandi se un'azione è disponibile. [...] Un pulsante può iscriversi all'evento CanExecuteChanged ed essere disabilitato se CanExecute restituisce false o essere abilitato se CanExecute restituisce true.

+0

Grazie ... significa che posso rimuovere un sacco di codice XAML. –

+1

@MichelKeijzers: se finora hai sempre avuto a che fare con 'IsEnabled', è vero. –

+0

Sì, al momento ho un binding di comandi dappertutto insieme a IsEnabled = CanExecute per lo stesso comando. Presumo che la modifica extra apportata nella risposta venga eseguita automaticamente. –