我有一个WinForms表单,其中包含一个ElementHost控件(包含一个WPF UserControl)和一个Save按钮。
在WPF UserControl中,我有一个文本框,上面有一些验证。像这样......
<TextBox Name="txtSomething" ToolTip="{Binding ElementName=txtSomething, Path=(Validation.Errors).[0].ErrorContent}">
<Binding NotifyOnValidationError="True" Path="Something">
<Binding.ValidationRules>
<commonWPF:DecimalRangeRule Max="1" Min="0" />
</Binding.ValidationRules>
</Binding>
</TextBox>
一切正常。但是,我想要做的是在表单处于无效状态时禁用“保存”按钮。
非常感谢任何帮助。
答案 0 :(得分:1)
答案 1 :(得分:0)
好吧,我终于找到了解决问题的方法。
在WPF控件中,我将其添加到Loaded
事件。
Validation.AddErrorHandler(this.txtSomething, ValidateControl);
上面的ValidateControl
,定义如下:
private void ValidateControl(object sender, ValidationErrorEventArgs args)
{
if (args.Action == ValidationErrorEventAction.Added)
OnValidated(false);
else
OnValidated(true);
}
最后,我添加了一个名为Validated
的事件,其事件args中包含IsValid
布尔值。然后我能够在我的表单上挂起这个事件,告诉它控件是否有效。
如果有更好的方式我有兴趣学习。