通过UserControl传递WPF按钮命令

时间:2010-02-22 16:53:02

标签: wpf xaml user-controls

我创建了一个包含Button的WPF UserControl。我现在希望usercontrol的任何使用者能够在usercontrol上设置Command属性,并将该命令分配给控件中的按钮。即,当单击按钮时,它会运行命令(在本例中为Prism DelegateCommand)。

所以,我的UserControl看起来像:

<UserControl>
  <Button ...>
</UserControl>

和我的消费者,我希望看起来像:

<controls:ThreeStateImageButtonControl
   Command="..." />

2 个答案:

答案 0 :(得分:4)

来吧!这是WPF。我们的想法是远离用户控件和自定义控件,这是旧的Windows Forms处理方式。这里最好的做法是使用WPF模板和WPF的无外观功能,用您喜欢的容器和行为来设置控件的样式。然后您不必担心通过Click或Command功能,因为它们已经存在。而不是将控件包装在其他元素中并使其成为用户控件,只需使用其他元素设置控件的样式。

答案 1 :(得分:3)

您需要在控件上为Command创建依赖项属性,然后为按钮的Click事件创建一个事件处理程序以执行Command。然后用户可以绑定到Command。也许网络教程或文档可以帮助你做到这一点?也许谷歌“用户控制教程上的WPF依赖属性”或者其他一些东西。

但是,我不确定你做的是对的。如果你的用户控件里面只有一个Button,你可能想要考虑一个继承自Button的自定义控件;实现会更简单,用户可以正常使用Click事件。在很多地方还有网络上的WPF自定义控制教程。

顺便说一句,你的财产实际上不会被称为Command,对吗?