将 IDataErrorInfo 绑定到窗口 IsEnabled 按钮属性
我有一个 WPF 子窗口,其中包含一些输入控件,用户必须在按“确定”按钮之前正确填充这些输入控件。
我已经实现了接口 IDataErrorInfo 来验证绑定到 UI 控件的所有属性。
现在我希望仅当所有控件都有效时,“确定”按钮的 IsEnabled 属性才为 True,否则必须将其设置为 False。
这应该很容易,但我找不到正确的解决方案。 您有什么建议吗?
提前致谢!
I have a WPF sub window with some input controls that the user has to correctly fill before pressing Ok button.
I have already implemented the interface IDataErrorInfo to validate all properties bound to UI Controls.
Now I would like that the IsEnabled property of Ok button is True only if ALL controls are valid, otherwise it has to be set to False.
It should be easy but I cannot find the correct solution. Do you have any suggestion?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Ciao ;-)
我认为您可以通过 IValueConverter 将按钮的
IsEnabled
属性绑定到(例如)数据的IDataErrorInfo.Error
属性(您必须实现)从string
转换为bool
(例如,如果String.Empty
的值返回true
)。另一种解决方案是使用
Command
并将此逻辑包含在CanExecute
中:这样,您只需将Command
与您的 <代码>按钮。华泰
Ciao ;-)
I think you could bind the
IsEnabled
property of the button to (e.g.) theIDataErrorInfo.Error
property of your data through a IValueConverter (that you have to implement) that converts fromstring
tobool
(e.g if the value ifString.Empty
than returntrue
).Another solution is to use
Command
s and have this logic enclosed in theCanExecute
: in this way you just have to associate theCommand
with yourButton
.HTH