0

我正在构建一个由两个重叠按钮和弹出窗口组成的自定义拆分按钮 - 像这样(图像显示了一些通用拆分按钮):

拆分按钮 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 时它不会被禁用。我怎样才能做到这一点?

谢谢!

4

1 回答 1

0

命令是一个依赖属性,我很确定它被可视树中它下面的任何控件继承。因此,对于您不想禁用的按钮,将 command 属性设置为不同的命令或将其设置为 null 也可能有效。

或者,

创建你自己的依赖属性......就像这个

依赖属性

于 2009-11-30T00:58:35.613 回答