0
我建立一个自定义的splitbutton是由两个重叠的按钮和弹出 - 像这样(图片展示了一些通用splitbutton):WPF:如何使绑定命令无法执行时启用按钮(splitbutton)?
SplitButton http://windowsclient.net/wf/blogs/jfoscoding/splitbutton.PNG
我SplitButton打开弹出焕右侧箭头点击,并在单击主按钮时执行SplitButton.Command。
但在我的情况下,有时默认操作无法执行,在这种情况下,当单击主按钮时,我想打开弹出窗口。
我已经完成它,但问题是这样的:
- 的SplitButton从切换按钮 在ControlTemplate中
- 子类,我有一个切换按钮(底部的一个),和按钮(短,重叠的在顶部)
Button.Command="{TemplateBinding Command}"
(所以我可以做<SplitButton Command="{Binding MyDefaultAction}">...
)- 问题:当一个命令无法执行,整个SplitButton被禁用。
我想继续使用相同的命令,但要覆盖按钮的行为,以便在Command.CanExecute()返回false时不会被禁用。我怎样才能做到这一点?
谢谢!
好了,问题是,我仍然希望按钮执行给定的命令,我只是不要”当命令不能执行时,不希望它被禁用。然而,我看着ButtonBase中的实现(使用Reflector),并且通过私有方法禁用按钮 - 所以我不能覆盖它们。 我可能需要从Reflector的反汇编视图中剔除所需的功能,并创建一个ICommand DP,它将在我的控制之下。感谢这个想法。 – 2009-11-30 03:12:08