问题
I noticed that the following code:
<Button Content="_Timbres..."
Command="{Binding Path=ShowTimbresCommand}"
IsEnabled="{Binding Path=CanExecuteShowTimbresCommand}"/>
behaves equally as:
<Button Content="_Timbres..."
Command="{Binding Path=ShowTimbresCommand}">
Meaning that the CanExecuteShowTimbresCommand is automatically bound to the IsEnabled property. Is that true and why?
回答1:
Usually controls which accept a Command will set IsEnabled to false if the command's CanExecute is false, that's all there is to it.
MSDN:
Another purpose of commands is to indicate whether an action is available. [...] A button can subscribe to the CanExecuteChanged event and be disabled if CanExecute returns false or be enabled if CanExecute returns true.
来源:https://stackoverflow.com/questions/9346328/is-binding-isenabled-optional-when-binding-command