Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Proprietà Binding.ValidatesOnDataErrors

Ottiene o imposta un valore che indica se includere DataErrorValidationRule.

Spazio dei nomi:  System.Windows.Data
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS per XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public bool ValidatesOnDataErrors { get; set; }
<object ValidatesOnDataErrors="bool" .../>

Valore proprietà

Tipo: System.Boolean
true per importare DataErrorValidationRule; in caso contrario, false.

Impostare questa proprietà fornisce un'alternativa all'utilizzo DataErrorValidationRule elemento in modo esplicito. DataErrorValidationRule è una regola di convalida incorporata che viene verificata la presenza di errori generati da IDataErrorInfo implementazione dell'oggetto di origine. Se viene generato un errore, il motore di associazione crea un oggetto ValidationError all'errore e lo aggiunge a l Validation.Errors raccolta dell'elemento associato. La mancanza di errore cancella questo feedback di convalida, a meno che un'altra regola genera un problema di convalida.

ValidatesOnDataErrors viene introdotto in .NET Framework versione 3.5. Per ulteriori informazioni, vedere Versioni e dipendenze di .NET Framework.

Gli utilizzi di esempi IDataErrorInfo e ValidatesOnDataErrors per convalidare l'input utente in un controllo TextBox. Nel primo esempio viene creato un tipo di dati che implementi IDataErrorInfo per segnalare 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;
        }
    }
}


Nell'esempio seguente viene associato Age proprietà di TextBox e set ValidatesOnDataErrors in true in Binding. Quando l'utente immette un valore non valido, viene visualizzato un bordo rosso in TextBox e ToolTip indica 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>


.NET Framework

Supportato in: 4.5, 4, 3.5 SP1, 3.0 SP1

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft