我有一个Button
,我为它提供了CheckBox
的控制模板样式。
请参阅以下代码:
<Style x:Key="radButtonCheakBoxStyle" TargetType="{x:Type telerik:RadButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type telerik:RadButton}">
<CheckBox Content="{Binding .,
Converter={StaticResource ContentConverter}}"
Command="{TemplateBinding Property=Command}"
IsEnabled="{Binding State,Converter={StaticResource CommandStateConverter}}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
问题是即使当CheckBox
被禁用并且在UI中它确实被禁用时,Button
点击仍然有效,所以当我按下禁用的CheckBox
时,我仍然可以进入命令。
我该如何防止这种情况发生?
您也尝试过绑定Button.IsEnabled属性吗?
作为一种替代方案(我建议您),您可以通过实现CanExecute方法来禁用该命令,这样无论何时您希望禁用它,它都会返回false(可能与您在CommandStateConverter中找到的逻辑相同)。