我正在构建一个由两个重叠按钮和弹出窗口组成的自定义拆分按钮 - 像这样(图像显示了一些通用拆分按钮):
拆分按钮 http://windowsclient.net/wf/blogs/jfoscoding/splitbutton.PNG
当单击带有箭头的右侧时,我的 SplitButton 会打开弹出窗口,并在单击主按钮时执行 SplitButton.Command。
然而,在我的情况下,有时默认操作无法执行,在这些情况下,当单击主按钮时,我想打开弹出窗口。
我已经完成了,但问题是这样的:
- SplitButton 是 ToggleButton 的子类
- 在 ControlTemplate 中,我有一个 ToggleButton(底部)和 Button(较短,覆盖在顶部)
Button.Command="{TemplateBinding Command}"
(所以我可以这样做<SplitButton Command="{Binding MyDefaultAction}">...
)- 问题:当命令无法执行时,整个 SplitButton 都会被禁用。
我想继续使用相同的命令,但要覆盖按钮的行为,以便在 Command.CanExecute() 返回 false 时它不会被禁用。我怎样才能做到这一点?
谢谢!