0

検証が有効になっているバインドされた TextBox がいくつかあります。

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

ビューが開かれると、NotEmpty vlaidation があるため、これらのテキスト ボックスはデフォルトで無効になります。

[OK] をクリックした最後の瞬間にのみ検証が行われるようにします。コード (ボタンのコマンド) から検証をトリガーするにはどうすればよいですか?

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 に答える