禁用按钮单击模板IsEnabled值

时间:2013-12-02 14:27:40

标签: wpf xaml binding styles controltemplates

我有一个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时,我仍然可以使用该命令。

我该如何防止这种情况?

1 个答案:

答案 0 :(得分:0)

您是否尝试过绑定Button.IsEnabled属性?

作为替代方案 - 我建议 - 您可以通过实现CanExecute方法来禁用该命令,以便在您希望它被禁用时返回false(可能与您在CommandStateConverter中的逻辑相同)。