如何在用户点击按钮时强制验证?
人们会认为这应该很容易,因为如果元素值有效,你总是要做点什么。
private void buttonOk_Click(object sender, RoutedEventArgs e)
{
// How can I force the validation here? So that empty values are not allowed (validator doesn't allow those)
if (Validation.GetHasError(textBoxURI) ||
Validation.GetHasError(textBoxName)) // These return valid values if user has not changed values in fields.
return;
DialogResult = true;
this.Close();
}
正如你猜测的那样,根据我的验证器(如果我在文本框中键入内容),空值无效,然后将其清空并模糊焦点,它将显示无效值。
作为旁注:UpdateSourceTrigger
不会影响未验证初始值的相关问题。
答案 0 :(得分:1)
您需要在BindingExpression上调用UpdateSource。这是一个带有文本框的示例,我们强制进行验证:
BindingExpression exp = textBox.GetBindingExpression(TextBox.TextProperty);
exp.UpdateSource();
答案 1 :(得分:0)