今天,我根据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/

10-11 01:50