UpdateSourceExceptionFilterCallback Delegát

Definice

Představuje metodu, která zpracovává výjimky, které jsou vyvolán během aktualizace zdrojové hodnoty vazby. Musí se použít s sadou 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 

Parametry

bindExpression
Object

Objekt s výjimkou.

exception
Exception

Došlo k výjimce.

Návratová hodnota

Object

Objekt, který je obvykle jedním z následujících:

Hodnota Popis
null Pokud chcete ignorovat všechny výjimky. Výchozí chování (pokud neexistuje UpdateSourceExceptionFilterCallback) je vytvořit ValidationError s výjimkou a přidat ho do Errors kolekce vázaného prvku.
Libovolný objekt Chcete-li vytvořit ValidationError objekt se nastavenou ErrorContent na tento objekt.

Objekt ValidationError se přidá do Errors kolekce vázaného prvku.

Objekt ValidationError Nastavení objektu nebo MultiBindingExpression objektu jako objektu BindingExpression BindingInError. Objekt ValidationError se přidá do Errors kolekce vázaného prvku.

Příklady

Vlastnost Text následující TextBox je vázána na zdrojovou vlastnost Age3 , která je typu int. Kontroluje ExceptionValidationRule výjimky, které jsou vyvolány během aktualizace zdrojové vlastnosti (například když uživatel zadá hodnotu, která se nedá převést na celé číslo).

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

Máte možnost poskytnout vlastní logiku pro zpracování těchto výjimek. Následující příklad ukazuje, jak použít UpdateSourceExceptionFilter vlastnost k nastavení UpdateSourceExceptionFilterCallback:


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

Následuje příklad implementace UpdateSourceExceptionFilterCallback:

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

Kompletní ukázku najdete v části Ukázka ověření vazby.

Poznámky

Pokud jste k objektu Binding přidružíte ExceptionValidationRule možnost použít UpdateSourceExceptionFilter vlastnost k nastavení tohoto zpětného volání pro poskytnutí vlastní logiky pro zpracování výjimek. Tato zpětné volání se vyvolá při každé výjimce při aktualizaci zdrojové hodnoty vazby modul vazeb.

Pokud není zadánBinding, UpdateSourceExceptionFilter vytvoří modul vazby ValidationError s výjimkou výjimku a přidá ho do Validation.Errors kolekce vázaného prvku.

Metody rozšíření

GetMethodInfo(Delegate)

Získá objekt, který představuje metodu reprezentovanou zadaným delegátem.

Platí pro

Viz také