今天我根据 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 之间还有其他区别吗?