今天,我根据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
只是另一个具有更好触摸支持的CheckBox,并且仅在Windows Store和Windows Phone应用程序中可用。为什么
ToggleSwitch.IsOn
不默认为TwoWay绑定(bind)? CheckBox和ToggleSwitch之间还有其他区别吗? 最佳答案
问题是微软在创建WPF的“Windows 8”版本时改变了很多东西。更改了很多内容,包括绑定(bind)的默认模式:
(MSDN)
而在WPF中:
(MSDN)
关于c# - Toggleswitch需要显式 "Mode=Twoway",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27382937/