Condividi tramite


UpdateSourceExceptionFilterCallback Delegato

Definizione

Rappresenta il metodo che gestisce le eccezioni generate durante l'aggiornamento del valore di origine dell'associazione. Questa operazione deve essere utilizzata 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 eventuali eccezioni. Il comportamento predefinito (se non è presente ) UpdateSourceExceptionFilterCallbackconsiste nel creare un oggetto ValidationError con l'eccezione e aggiungerlo alla Errors raccolta dell'elemento associato.
Qualsiasi oggetto Per creare un ValidationError oggetto con l'oggetto ErrorContent impostato su tale oggetto.

L'oggetto ValidationError viene aggiunto alla Errors raccolta dell'elemento associato.

Oggetto ValidationError Per impostare l'oggetto BindingExpression o MultiBindingExpression come .BindingInError L'oggetto ValidationError viene aggiunto alla Errors raccolta 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 è riportato un esempio di implementazione 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 in modo da 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.

Se un oggetto UpdateSourceExceptionFilter 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

Nome Descrizione
GetMethodInfo(Delegate)

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

Si applica a

Vedi anche