Freigeben über


Binding.ValidatesOnExceptions Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob die ExceptionValidationRule eingeschlossen werden soll, oder legt diesen fest.

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

Eigenschaftswert

true, wenn die ExceptionValidationRule eingeschlossen werden soll, andernfalls false.

Beispiele

In den folgenden Beispielen werden ValidatesOnExceptions Benutzereingaben in einem TextBoxüberprüft. Im ersten Beispiel wird ein Datentyp erstellt, der eine Ausnahme auslöst, wenn die Age Eigenschaft auf eine ungültige Eigenschaft festgelegt ist.

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

Im folgenden Beispiel wird die Age -Eigenschaft an das TextBox gebunden und auf trueBindingfestgelegtValidatesOnExceptions. Wenn der Benutzer einen ungültigen Wert eingibt, wird ein roter Rahmen in und TextBoxToolTip die Fehlermeldung angezeigt.

<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>

Hinweise

Das Festlegen dieser Eigenschaft stellt eine Alternative zur expliziten Verwendung des ExceptionValidationRule Elements bereit. Die ExceptionValidationRule ist eine integrierte Überprüfungsregel, die nach Ausnahmen sucht, die während der Aktualisierung der Quelleigenschaft ausgelöst werden. Wenn eine Ausnahme ausgelöst wird, erstellt das Bindungsmodul eine ValidationError mit der Ausnahme und fügt sie der Validation.Errors Auflistung des gebundenen Elements hinzu. Das Fehlen eines Fehlers löscht dieses Validierungsfeedback, es sei denn, eine andere Regel verursacht ein Validierungsproblem.

ValidatesOnExceptionswird in der .NET Framework Version 3.5 eingeführt. Weitere Informationen finden Sie unter .NET Framework-Versionen und -Abhängigkeiten.

Gilt für:

Weitere Informationen