【发布时间】:2015-10-05 16:13:36
【问题描述】:
我正在编写一个程序,它有两种可能性:手动设置时间和日期,或使用计算机/系统时间和日期。
所以现在我需要制作两个互斥的复选框。选择一个时,必须取消选中另一个。如何在 MVVM 中做到这一点?
<CheckBox Name="UseSystemTime" Margin="7" Content="Use System Time and Date settings (Time, Date, DST, Timezone)" IsChecked="{Binding UseSystemTime}"/>
<CheckBox Name="ManualTime" Margin="7" Content="Set settings Manually" IsChecked="{Binding SetSettingsManually}"/>
有没有办法在 XAML 中做到这一点?
WPF coding mutually exclusive Checkboxes with Data Binding
谢谢!
【问题讨论】:
-
如有任何问题请询问
-
你为什么不使用单选按钮呢?它们是显示互斥选项的传统方式,可能更容易设置。
-
感谢您的想法。也想过这个。但是复选框的形式更漂亮(对用户更友好) - 我认为是这样:) 我宁愿使用复选框,或者可以将单选按钮的形状更改为复选框形式? :) 带有复选标记和everythink? :)
-
您应该始终询问您的用户他们喜欢什么,在制作任何类型的软件时,永远不要认为您的意见是最好的。当您需要互斥行为时,使用单选按钮(具有默认外观)是标准行为。将默认外观更改为其他一些标准控件可能会使您的用户感到困惑。您可以做某事的事实并不意味着您应该始终这样做。
-
在所有这些 cmets 之后,如果您仍想使用与以前相同的方式,那么您的 IsChecked 属性需要转换器。可能是带有 MultiBinding 的转换器