Binding.ValidatesOnExceptions Binding.ValidatesOnExceptions Binding.ValidatesOnExceptions Binding.ValidatesOnExceptions Property

定義

ExceptionValidationRule を含めるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether to include the ExceptionValidationRule.

public:
 property bool ValidatesOnExceptions { bool get(); void set(bool value); };
public bool ValidatesOnExceptions { get; set; }
member this.ValidatesOnExceptions : bool with get, set
Public Property ValidatesOnExceptions As Boolean

プロパティ値

ExceptionValidationRule を含める場合は true。それ以外の場合は falsetrue to include the ExceptionValidationRule; otherwise, false.

次の例を使用してValidatesOnExceptionsでユーザー入力を検証する、TextBoxします。The following examples use ValidatesOnExceptions to validate user input in a TextBox. 最初の例では、例外をスローするデータ型を作成するときに、Ageプロパティが無効なプロパティに設定します。The first example creates a data type that throws an exception when the Age property is set to an invalid property.

public class PersonThrowException
{
    private int age;

    public int Age
    {
        get { return age; }
        set
        {

            if (value < 0 || value > 150)
            {
                throw new ArgumentException("Age must not be less than 0 or greater than 150.");
            }
            age = value;
        }
    }
}
Public Class PersonThrowException
    Private m_age As Integer

    Public Property Age() As Integer
        Get
            Return m_age
        End Get
        Set(ByVal value As Integer)

            If value < 0 OrElse value > 150 Then
                Throw New ArgumentException("Age must not be less than 0 or greater than 150.")
            End If
            m_age = value
        End Set
    End Property
End Class

次の例では、バインド、AgeプロパティをTextBox設定とValidatesOnExceptionstrue上、Bindingします。The following example binds the Age property to the TextBox and sets ValidatesOnExceptions to true on the Binding. 無効な値を入力するに赤色の枠線が表示されます。、TextBoxToolTipエラー メッセージを報告します。When the user enters an invalid value, a red border appears in the TextBox and the ToolTip reports the error message.

<StackPanel Margin="20">
  <StackPanel.Resources>
    
    <src:PersonThrowException x:Key="data"/>
    
    <!--The tool tip for the TextBox to display the validation error message.-->
    <Style x:Key="textBoxInError" TargetType="TextBox">
      <Style.Triggers>
        <Trigger Property="Validation.HasError" Value="true">
          <Setter Property="ToolTip"
              Value="{Binding RelativeSource={x:Static RelativeSource.Self},
              Path=(Validation.Errors)[0].ErrorContent}"/>
        </Trigger>
      </Style.Triggers>
    </Style>

  </StackPanel.Resources>
  <TextBlock>Enter your age:</TextBlock>
  <TextBox Style="{StaticResource textBoxInError}">
    <TextBox.Text>
      <!--By setting ValidatesOnExceptions to True, it checks for exceptions
        that are thrown during the update of the source property.
        An alternative syntax is to add <ExceptionValidationRule/> within
        the <Binding.ValidationRules> section.-->
      <Binding Path="Age" Source="{StaticResource data}"
               ValidatesOnExceptions="True"
               UpdateSourceTrigger="PropertyChanged">
      </Binding>
    </TextBox.Text>
  </TextBox>
  <TextBlock>Mouse-over to see the validation error message.</TextBlock>
</StackPanel>

注釈

このプロパティを設定すると、使用する代わりに、ExceptionValidationRule要素に明示的にします。Setting this property provides an alternative to using the ExceptionValidationRule element explicitly. ExceptionValidationRuleソース プロパティの更新中にスローされる例外をチェックする組み込みの検証ルールします。The ExceptionValidationRule is a built-in validation rule that checks for exceptions that are thrown during the update of the source property. 例外がスローされた場合、バインディング エンジンが作成、ValidationError例外に追加します、Validation.Errorsバインドされた要素のコレクション。If an exception is thrown, the binding engine creates a ValidationError with the exception and adds it to the Validation.Errors collection of the bound element. エラーがないことは、別の規則を検証の問題が発生しない限り、この検証のフィードバックをクリアします。The lack of an error clears this validation feedback, unless another rule raises a validation issue.

ValidatesOnExceptions .NET Framework version 3.5 で導入されました。ValidatesOnExceptions is introduced in the .NET Framework version 3.5. 詳細については、「.NET Framework のバージョンおよび依存関係」を参照してください。For more information, see .NET Framework Versions and Dependencies.

適用対象

こちらもご覧ください