今天我根据 UI 设计更改更新了一个 Windows Store 应用程序。其中一项更改是将 a 替换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它只是另一个具有更好的触控支持的 CheckBox,它仅在 Windows Store 和 Windows Phone 应用程序中可用。
为什么ToggleSwitch.IsOn不默认为双向绑定?CheckBox 和 ToggleSwitch 之间还有其他区别吗?