0

我有几个启用了验证的绑定文本框。

  <TextBox Text="{Binding Name, ValidatesOnDataErrors=True" />
  <TextBox Text="{Binding Password, ValidatesOnDataErrors=True" />
  <Button Command="{Binding OkCommand}"/>

打开视图时,这些文本框默认无效,因为我在它们上有 NotEmpty vlaidation。

我希望验证仅在最后一刻发生,当我单击确定时。如何从代码(按钮的命令)触发验证?

4

1 回答 1

0

您可以像这样为您的绑定设置UpdateSourceTriggerto来显式触发验证-Explicit

<TextBox x:Name="textBox1"
         Text="{Binding Name, ValidatesOnDataErrors=True, 
                              UpdateSourceTrigger=Explicit}"/>
<TextBox x:Name="textBox2"
         Text="{Binding Password, ValidatesOnDataErrors=True, 
                                  UpdateSourceTrigger=Explicit}" />
<Button Click="Button_Click"/>

在处理程序中,您必须像这样显式更新源 -

private void Button_Click(object sender, RoutedEventArgs e)
{
    textBox1.GetBindingExpression(TextBox.TextProperty).UpdateSource();
    textBox2.GetBindingExpression(TextBox.TextProperty).UpdateSource();
}
于 2012-12-05T12:22:46.173 回答