在WPF 3.5中,组合框的属性是否允许用户撤消他们所做的选择?
答案 0 :(得分:3)
<强>代码强>
如果您想方设法从代码中重置选择(您编写了属性),请尝试以下操作:
cboYourCombo.SelectedIndex=-1
或
cboYourCombo.SelectedItem=null;
键盘快捷键
如果你找一个键盘快捷键来重置,我从来没有见过。但如果你愿意,你可以自己做,这可能很容易:
将EventHandler
附加到组合框的PreviewKeyDown
- 事件(或注册适用于您窗口/应用中所有组合框的常规事件处理程序),检查密钥以及密钥是否为密钥要重置,请使用上面的代码重置选择。请注意,在PreviewKeyDown
- 事件中,您还可以检查特殊键,例如控制键。
提供空值
但是我想,最好是添加一个空条目,然后预先选择这个空值。如果用户已更改选择并想要重置,则可以选择空值。否则,您将更改标准的UI行为,而不是所有人都这样。
答案 1 :(得分:0)
“撤消”是什么意思?你的意思是像CTRL + Z(或撤消按钮),或者像CANCEL这样的东西?在组合框上实现真正的undo / ctrl + z是很少的应用程序所做的事情,它会让用户感到惊讶。这是一个非常糟糕的主意,除非你有充分的理由。
如果您有充分的理由反对大多数Windows应用程序的设计,您可以为SelectionChanged添加处理程序,并实现您自己的历史记录。然后,如果用户使用keydown(ctrl + z)或单击“撤消”按钮,您可以自己设置选择。
或者,如果你真的不想要UNDO功能,并且实际上想要一个CANCEL功能(UI应用程序中的常见功能),那么你不应该单独担心每个控件。只需保留一组存储的设置(在某些自定义类中),并将所有控件设置回存储的值。对于组合框,您需要设置Selection属性。