WPF自定义按钮';s命令绑定不';行不通

WPF自定义按钮';s命令绑定不';行不通,wpf,xaml,data-binding,custom-controls,Wpf,Xaml,Data Binding,Custom Controls,我创建了一个继承button类的自定义按钮。我添加了一些依赖属性,我需要让用户指定按钮的外观 按钮看起来很棒,依赖属性也如我所愿工作。但是,无论我如何尝试,Command属性都不起作用 这是我的样本: public partial class CustomButton : Button { ... //some dependency property public CustomButton() { ...//do some initialization

我创建了一个继承button类的自定义按钮。我添加了一些依赖属性,我需要让用户指定按钮的外观

按钮看起来很棒,依赖属性也如我所愿工作。但是,无论我如何尝试,Command属性都不起作用

这是我的样本:

public partial class CustomButton : Button
{
    ... //some dependency property
    public CustomButton()
    {
       ...//do some initialization
       //I tried checking the Command property over here but it seems like always to be NULL?!
    }
}
我的XAML:

<Button x:Class="CustomButton"
        xmlns:.....>
   <Button.Resources>
   <Style TargetType="Button" x:Key="CustomButtonStyle">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate  TargetType="{x:Type Button}">
                    <StackPanel Orientation="Horizontal" Background="Transparent" Height="22">
                    ......more things behind...
   </Style>
   </Button.Resources>
   <Button.Style>
   <Style TargetType="{x:Type Button}" BasedOn="{StaticResource CustomButtonStyle}">
   </Style>
   </Button.Style>
</Button>

……后面还有更多的东西。。。
我在其他windows控件中使用了它,如下所示:

 <Controls:CustomButton Command="{Binding NewCommand}" ToolTip="AddNew"/>

命令总是不被执行,为什么?我错过什么了吗?
请帮忙。谢谢。

猜测你的模板只会让你很难真正点击按钮。作为一个实验,尝试将root
StackPanel
的背景设置为solid
Red
而不是
Transparent
,看看这是否会使单击更容易。

如果改为使用普通按钮,是否有效?检查输出窗口是否存在绑定错误Yes Thomas,如果我使用“正常”按钮,它会正常工作。请通过style提供您正在应用的完整控件模板。嗨,我试过了,它无法修复它。仅供参考,问题似乎与命令绑定有关。因为我可以鼠标悬停,我可以点击,所有的风格似乎都在发挥作用。只是命令似乎不是从父模板传递下来的。