Binding.ValidatesOnDataErrors Eigenschap

Definitie

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de DataErrorValidationRulewaarde moet worden opgenomen.

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

Waarde van eigenschap

true om de DataErrorValidationRule; anders toe te voegen, false.

Voorbeelden

In de volgende voorbeelden wordt gebruikgemaakt IDataErrorInfo van en ValidatesOnDataErrors om gebruikersinvoer in een TextBoxte valideren. In het eerste voorbeeld wordt een gegevenstype gemaakt dat wordt geïmplementeerd IDataErrorInfo om validatiefouten te rapporteren.

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

In het volgende voorbeeld wordt de Age eigenschap aan de TextBox eigenschap gekoppeld en ingesteld ValidatesOnDataErrorstrue op de Binding. Wanneer de gebruiker een ongeldige waarde invoert, wordt er een rode rand weergegeven in de TextBox en wordt het ToolTip foutbericht gerapporteerd.

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

Opmerkingen

Het instellen van deze eigenschap biedt een alternatief voor het expliciet gebruik van het DataErrorValidationRule element. Dit DataErrorValidationRule is een ingebouwde validatieregel waarmee wordt gecontroleerd op fouten die worden gegenereerd door de IDataErrorInfo implementatie van het bronobject. Als er een fout optreedt, maakt de bindingsengine een ValidationError met de fout en voegt deze toe aan de Validation.Errors verzameling van het afhankelijke element. Het ontbreken van een fout wist deze validatiefeedback, tenzij een andere regel een validatieprobleem veroorzaakt.

ValidatesOnDataErrors wordt geïntroduceerd in de .NET Framework versie 3.5. Zie .NET Framework-versies en -afhankelijkhedenvoor meer informatie.

Van toepassing op

Zie ook