【发布时间】:2014-12-09 15:41:00
【问题描述】:
今天我根据 UI 设计更改更新了一个 Windows Store 应用程序。其中一项更改是将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
根据我了解到的in WPF,我不必在 CheckBox 的 IsChecked 属性上显式设置Mode=TwoWay,因为默认情况下它是TwoWay。
一般来说,用户可编辑的控件属性(例如文本框和复选框的属性)默认为双向绑定,而大多数其他属性默认为单向绑定。
我一直认为ToggleSwitch 只是另一个具有更好的触控支持的复选框,它仅在 Windows 应用商店和 Windows Phone 应用中可用。
为什么ToggleSwitch.IsOn 不是默认的双向绑定? CheckBox 和 ToggleSwitch 之间还有其他区别吗?
【问题讨论】:
标签: c# wpf data-binding windows-store-apps toggleswitch