Condividi tramite


Binding.ValidatesOnExceptions Proprietà

Definizione

Ottiene o imposta un valore che indica se includere 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

Valore della proprietà

true per includere l'oggetto ExceptionValidationRule; in caso contrario, false.

Esempio

Negli esempi seguenti viene usato ValidatesOnExceptions per convalidare l'input dell'utente in un oggetto TextBox. Il primo esempio crea un tipo di dati che genera un'eccezione quando la Age proprietà è impostata su una proprietà non valida.

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

Nell'esempio seguente la Age proprietà viene associata a TextBox e viene impostata ValidatesOnExceptionstrue su su .Binding Quando l'utente immette un valore non valido, viene visualizzato un bordo rosso in TextBox e segnala ToolTip il messaggio di errore.

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

Commenti

L'impostazione di questa proprietà offre un'alternativa all'uso esplicito dell'elemento ExceptionValidationRule . ExceptionValidationRule è una regola di convalida predefinita che verifica la presenza di eccezioni generate durante l'aggiornamento della proprietà di origine. Se viene generata un'eccezione, il motore di associazione crea un ValidationError oggetto con l'eccezione e lo aggiunge alla Validation.Errors raccolta dell'elemento associato. La mancanza di un errore cancella questo feedback di convalida, a meno che un'altra regola non generi un problema di convalida.

ValidatesOnExceptions è stato introdotto in .NET Framework versione 3.5. Per altre informazioni, vedere Versioni e dipendenze di .NET Framework.

Si applica a

Vedi anche