今日はUIデザインの変更に伴い、Windowsストアアプリを更新しました。変更の 1 つは、 を に置き換えることCheckBox
ですToggleSwitch
。
したがって、コードはから更新されます
<CheckBox IsChecked="{Binding BooleanProperty}" ...
に
<ToggleSwitch IsOn="{Binding BooleanProperty"} ... //does not update data source
ToggleSwitch
次に、トグルしても基になる が更新されないことに気付きました。それを機能させるBooleanProperty
には、追加Mode=TwoWay
する必要があります。
<Toggleswitch IsOn="{Binding BooleanProperty, Mode=TwoWay"} ... //update data source
WPFで学んだことからMode=TwoWay
、CheckBox の IsChecked プロパティを明示的に設定する必要はありません。これはTwoWay
デフォルトであるためです。
一般に、テキスト ボックスやチェック ボックスのプロパティなど、ユーザーが編集可能なコントロールのプロパティは既定で双方向のバインドに設定されますが、他のほとんどのプロパティは既定で一方向のバインドに設定されます。
そして、私はToggleSwitch
、より優れたタッチ サポートを備えた単なるチェック ボックスであり、Windows ストアおよび Windows Phone アプリでのみ利用できると考えていました。
ToggleSwitch.IsOn
デフォルトが TwoWay バインディングでないのはなぜですか? CheckBox と ToggleSwitch の間に他に違いはありますか?