2 つの重なり合うボタンとポップアップで構成されるカスタム分割ボタンを構築しています - このように (画像はいくつかの一般的な分割ボタンを示しています):
SplitButton 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 を返したときにボタンが無効にならないようにします。これどうやってするの?
ありがとうございました!