WPF自定义按钮';s命令绑定不';行不通
我创建了一个继承button类的自定义按钮。我添加了一些依赖属性,我需要让用户指定按钮的外观 按钮看起来很棒,依赖属性也如我所愿工作。但是,无论我如何尝试,Command属性都不起作用 这是我的样本: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
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
的背景设置为solidRed
而不是Transparent
,看看这是否会使单击更容易。如果改为使用普通按钮,是否有效?检查输出窗口是否存在绑定错误Yes Thomas,如果我使用“正常”按钮,它会正常工作。请通过style提供您正在应用的完整控件模板。嗨,我试过了,它无法修复它。仅供参考,问题似乎与命令绑定有关。因为我可以鼠标悬停,我可以点击,所有的风格似乎都在发挥作用。只是命令似乎不是从父模板传递下来的。