Я создаю пользовательскую кнопку разделения, которая состоит из двух перекрывающихся кнопок, и всплывающее окно - вот так (на рисунке показана общая кнопка разделения):
SplitButton http://windowsclient.net/wf/blogs/jfoscoding/splitbutton.PNG
My SplitButton открывает всплывающее окно при нажатии правой стороны со стрелкой и выполняет команду SplitButton.Command при нажатии основной кнопки.
В моем случае, однако, иногда действие по умолчанию не может быть выполнено, и в тех случаях, когда нажата основная кнопка, я бы хотел вместо этого открыть всплывающее окно.
Я выполнил это, но проблема в следующем:
- кнопка SplitButton разделена на подклассы из кнопки ToggleButton
- в ControlTemplate, у меня есть ToggleButton (нижняя) и Button (короче, с наложением сверху)
Button.Command="{TemplateBinding Command}"
(так что я могу сделать <SplitButton Command="{Binding MyDefaultAction}">...
)
- проблема: когда команда не может быть выполнена, весь SplitButton отключается.
Я бы хотел сохранить ту же команду, но переопределить поведение кнопки, чтобы она не отключалась, когда Command.CanExecute () возвращает false. Как я могу это сделать?
Спасибо!