通过UserControl传递WPF按钮命令

问题描述:

我创建了一个包含Button的WPF UserControl。我现在希望usercontrol的任何使用者都能够在usercontrol上设置Command属性,并将该命令分配给控件中的按钮。即当按钮被点击时,它运行命令(在这种情况下是Prism DelegateCommand)。通过UserControl传递WPF按钮命令

所以,我的用户是这样的:

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

和我消费,我想是这样的:

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

对不起拉斯,刚刚更新! – devdigital 2010-02-23 10:08:23

你需要在你的控制创建命令依赖项属性,然后创建该按钮的Click事件的事件处理程序来执行Command。然后用户可以绑定到Command。也许Web教程或文档可以帮助你做到这一点?也许谷歌“用户控制教程的WPF依赖属性”或一些这样的事情。

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

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

来吧人!这是WPF。这个想法是远离用户控件和自定义控件,这是旧的Windows Forms做事的方式。这里要做的最好的事情就是使用WPF模板和WPF的无望特性来使用容器和您喜欢的行为来设置控件的样式。然后,您不必担心通过点击或命令功能,因为它们已经在那里。而不是将控件包装在其他元素中,并将其设置为用户控件,只需使用其他元素进行样式控制即可。

+0

谢谢!我想这是一种值得考虑的方法。我想在这种情况下,我会直接从Button继承控件。该控件可能稍后会有自定义命令等。如果我将它作为显式样式实现,则必须为Button的每个实例重新定义命令。 – devdigital 2010-02-23 10:15:16

+0

你是100%正确! – Raffaeu 2011-01-17 01:48:57