Binding.ValidatesOnDataErrors Proprietà

Definizione

Ottiene o imposta un valore che indica se includere DataErrorValidationRule.

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

Valore della proprietà

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

Esempio

Negli esempi seguenti vengono IDataErrorInfo usati e ValidatesOnDataErrors per convalidare l'input dell'utente in un oggetto TextBox. Il primo esempio crea un tipo di dati che implementa per segnalare IDataErrorInfo gli errori di convalida.

public class PersonImplementsIDataErrorInfo : IDataErrorInfo
{
    private int age;

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

    public string Error
    {
        get
        {
            return "";
        }
    }

    public string this[string name]
    {
        get
        {
            string result = null;

            if (name == "Age")
            {
                if (this.age < 0 || this.age > 150)
                {
                    result = "Age must not be less than 0 or greater than 150.";
                }
            }
            return result;
        }
    }
}
Public Class PersonImplementsIDataErrorInfo
    Implements System.ComponentModel.IDataErrorInfo
    Private m_age As Integer

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

    Public ReadOnly Property [Error]() As String _
                    Implements System.ComponentModel.IDataErrorInfo.Error
        Get
            Return ""
        End Get
    End Property

    Default Public ReadOnly Property Item(ByVal name As String) As String _
                            Implements System.ComponentModel.IDataErrorInfo.Item
        Get
            Dim result As String = Nothing

            If name = "Age" Then
                If Me.m_age < 0 OrElse Me.m_age > 150 Then
                    result = "Age must not be less than 0 or greater than 150."
                End If
            End If
            Return result
        End Get
    End Property
End Class

Nell'esempio seguente la Age proprietà viene associata a TextBox e viene impostata ValidatesOnDataErrorstrue 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:PersonImplementsIDataErrorInfo 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>
      <!--ValidatesOnDataErrors to is set to True, so the Binding
          checks for errors raised by the IDataErrorInfo object.
          An alternative syntax is to add <DataErrorValidationRule/> within
          the <Binding.ValidationRules> section.-->
      <Binding Path="Age" Source="{StaticResource data}"
               ValidatesOnDataErrors="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 DataErrorValidationRule . DataErrorValidationRule è una regola di convalida predefinita che verifica la presenza di errori generati dall'implementazione dell'oggetto IDataErrorInfo di origine. Se viene generato un errore, il motore di associazione crea un ValidationError oggetto con l'errore 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.

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

Si applica a

Vedi anche