我有一个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
时,我仍然可以使用该命令。
我该如何防止这种情况?
答案 0 :(得分:0)
您是否尝试过绑定Button.IsEnabled属性?
作为替代方案 - 我建议 - 您可以通过实现CanExecute方法来禁用该命令,以便在您希望它被禁用时返回false(可能与您在CommandStateConverter中的逻辑相同)。