【发布时间】:2014-01-21 19:17:55
【问题描述】:
伙计们!
我有类似的东西:
我需要编写一些验证逻辑。主要规则 - 用户只能选择相邻的复选框。例如 1;2;3 或 2;3 或 3;4 等(不要选择 1;3 或 1;2;4 等(无间隙))。 而且我不知道,我怎样才能简单地实现该算法。
我使用 MVVM 方法,这是我的 ViewModel 类(短)的一部分:
public bool FirstIsCheck {get;set;}
public bool SecondIsCheck {get;set;}
public bool ThirdIsCheck {get;set;}
public bool FourthIsCheck {get;set;}
【问题讨论】:
-
将检查的值设为bool数组,然后检查是否所有的值都是假的,或者循环中是否有相邻的真值。这里潜伏着一个 UI 噩梦:用户怎么知道她只能选中相邻的框?所以你应该使用上面的逻辑在选中一个框时将不相邻的复选框变灰。这应该排除检查无效复选框 - 并使用户清楚逻辑。
-
循环的想法似乎很有趣。并且这个控件将被一个特殊的用户使用,他必须知道这个规则(但可能会出错)
-
用户只能选择一个
CheckBox或者必须是>= 2? -
从 1 到 4(默认为 0)
-
这相当于选择一个范围——两个组合框(从/到)可能是一个更好的界面。
标签: .net wpf algorithm mvvm checkbox