ToggleButtonはICommandをサポートしているので、TogglePlayPause、ToggleMuteなどの多くのコマンドを作成します。これは正常に機能しますが、IsCheckedプロパティもバインドする必要があるため、チェックされた状態は常に正しい状態を示します。しかし、ToggleButtonのOneWayバインディングモードを作成し、ToggleButtonを押すと、バインディングが失われます。
問題は、ToggleButtonがICommandをサポートしているのに、OneWayバインディングをサポートしていない理由です。TwoWayバインディングを設定することはできますが、ToggleButtonがCommandを使用する場合はお勧めできません。これは、Commandによって処理される実際の操作であり、TwoWayバインディングと重複してはならないためです。また、それが不可能な場合もあります。私の場合、Command = TogglePlayPause IsChecked = {Bind toIsMediaPlaying}IsMediaPlayingは読み取り専用である必要があります。
では、コマンドでToggleButtonを使用し、そのIsCheckedプロパティをバインドする方法を教えてください。