我有一个ChildWindow用户在文本字段中输入一些数据。现在,当他点击提交按钮时,我只有在输入的数据有效时才需要关闭ChildWindow?怎么检查?我已经搜索并看到了许多关于如何验证文本框的示例,但我需要知道如何查看一切是否有效并让用户关闭窗口?
答案 0 :(得分:1)
好吧,我希望我能正确理解你的问题,而不是过于天真。
正如您所写,您知道如何实际验证表单的内容,我将简要介绍:
有:
private void OKButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = true;
}
来自ChildWindow类的,它处理子窗口的Click事件。在此方法中,您将调用验证例程,并且只有在验证返回true时才设置this.DialogResult。例如。像这样:
private void OKButton_Click(object sender, RoutedEventArgs e)
{
if (MyAweSomeValidation() == true)
{
this.DialogResult = true;
}
}
当然,您需要自己的MyAweSomeValidation()逻辑:)
属性DialogResult的实现方式是在设置时自动关闭子窗口。如果未设置该值,则窗口不会以此方式关闭。但是,如果你这样处理它,你应该告诉用户它为什么不关闭。 :)
HTH
答案 1 :(得分:0)
如果您有数据表格,请执行以下操作:
dataform1.ValidateItem();
if (!dataform1.ValidationSummary.HasErrors)
{
dataform1.CommitEdit();
DialogResult = true;
}