Condividi tramite


UpdateSourceExceptionFilterCallback Delegato

Definizione

Rappresenta il metodo che gestisce le eccezioni generate durante l'aggiornamento del valore di origine dell'associazione. Deve essere usato con ExceptionValidationRule.

public delegate System::Object ^ UpdateSourceExceptionFilterCallback(System::Object ^ bindExpression, Exception ^ exception);
public delegate object UpdateSourceExceptionFilterCallback(object bindExpression, Exception exception);
type UpdateSourceExceptionFilterCallback = delegate of obj * Exception -> obj
Public Delegate Function UpdateSourceExceptionFilterCallback(bindExpression As Object, exception As Exception) As Object 

Parametri

bindExpression
Object

Oggetto con l'eccezione.

exception
Exception

Eccezione rilevata.

Valore restituito

Oggetto che in genere è uno dei seguenti:

Valore Descrizione
null Per ignorare qualsiasi eccezione. Il comportamento predefinito (se non è presente alcun oggetto UpdateSourceExceptionFilterCallback) è creare un oggetto ValidationError con l'eccezione e aggiungerlo all'insieme Errors dell'elemento associato.
Qualsiasi oggetto Per creare un oggetto ValidationError con l'oggetto ErrorContent impostarlo su tale oggetto.

L'oggetto ValidationError viene aggiunto all'insieme Errors dell'elemento associato.

Oggetto ValidationError. Per impostare l'oggetto BindingExpression o MultiBindingExpression come BindingInError. L'oggetto ValidationError viene aggiunto all'insieme Errors dell'elemento associato.

Esempio

La Text proprietà seguente TextBox è associata a dati a una proprietà Age3 di origine di tipo int. Verifica ExceptionValidationRule la presenza di eccezioni generate durante l'aggiornamento della proprietà di origine, ad esempio quando l'utente immette un valore che non può essere convertito in un numero intero.

<TextBox Name="textBox3" Width="50" FontSize="15"
         Grid.Row="4" Grid.Column="1" Margin="2"
         Validation.ErrorTemplate="{StaticResource validationTemplate}"
         Style="{StaticResource textBoxInError}">
  <TextBox.Text>
    <Binding Path="Age3" Source="{StaticResource ods}"
             UpdateSourceTrigger="PropertyChanged">
      <Binding.ValidationRules>
        <ExceptionValidationRule/>
      </Binding.ValidationRules>
    </Binding>
  </TextBox.Text>
</TextBox>

È possibile fornire logica personalizzata per gestire tali eccezioni. Nell'esempio seguente viene illustrato come utilizzare la UpdateSourceExceptionFilter proprietà per impostare un oggetto UpdateSourceExceptionFilterCallback:


BindingExpression myBindingExpression = textBox3.GetBindingExpression(TextBox.TextProperty);
Binding myBinding = myBindingExpression.ParentBinding;
myBinding.UpdateSourceExceptionFilter = new UpdateSourceExceptionFilterCallback(ReturnExceptionHandler);
myBindingExpression.UpdateSource();

Di seguito è riportata un'implementazione di esempio di :UpdateSourceExceptionFilterCallback

object ReturnExceptionHandler(object bindingExpression, Exception exception)
{
    return "This is from the UpdateSourceExceptionFilterCallBack.";
}

Per l'esempio completo, vedere Esempio di convalida dell'associazione.

Commenti

Se è stato associato all'oggetto ExceptionValidationRuleBinding è possibile usare la proprietà per impostare questo UpdateSourceExceptionFilter callback per fornire logica personalizzata per la gestione delle eccezioni. Questo callback viene richiamato ogni volta che viene rilevata un'eccezione quando il motore di associazione aggiorna il valore di origine dell'associazione.

UpdateSourceExceptionFilter Se un oggetto non viene specificato in Binding, il motore di associazione crea un ValidationError oggetto con l'eccezione e lo aggiunge alla Validation.Errors raccolta dell'elemento associato.

Metodi di estensione

GetMethodInfo(Delegate)

Ottiene un oggetto che rappresenta il metodo rappresentato dal delegato specificato.

Si applica a

Vedi anche