的Calburn Micro:禁用表单验证错误按钮
作者:互联网
我有一个文本框绑定到整数和一个按钮的窗体.现在,当文本框的值无效时,我想立即禁用该按钮.
通常,将Can()方法放入VM中,并在属性的设置器中触发NotifyOfPropertyChange.但是,例如,如果用户输入一个非数字值,则文本框无效,但永远不会调用属性设置器,因此我无法通知/禁用该按钮.
因此,当用户输入一个不会导致调用属性设置程序的无效值时,如何禁用按钮?我刚开始时对CM的了解有限.
解决方法:
我发现解决此问题的最佳方法是改为使属性成为字符串,并在属性设置器中进行必要的字符串到整数的转换.如果转换无效,则可以将TextBox值重置为默认值.这样,您的财产设定者将永远被解雇.
如果您的模型具有整数属性,则将字符串版本放在视图模型上是有意义的,因为这仅与UI真正相关,而与业务逻辑无关.
如果您不希望用户输入非数字字符,则可以使用带遮罩的文本框(例如Extended WPF Toolkit中包含的文本框)或第三方控制套件(例如Telerik或Infragistics提供的控件) .
标签:wpf,c,caliburn-micro 来源: https://codeday.me/bug/20191102/1994208.html