Sdílet prostřednictvím


UpdateSourceExceptionFilterCallback Delegát

Definice

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

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 s ValidationError výjimkou a přidá ho do Errors kolekce vázaného prvku.
Libovolný objekt Chcete-li vytvořit ValidationError objekt se ErrorContent sadou na tento objekt.

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

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

Příklady

Vlastnost Text následující TextBox je data svázaná se 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 ke svému Binding objektu přidružíte ExceptionValidationRule možnost použít UpdateSourceExceptionFilter tuto vlastnost k nastavení tohoto zpětného volání a poskytnout vlastní logiku pro zpracování výjimek. Toto zpětné volání se vyvolá při každé výjimce při aktualizaci zdrojové hodnoty vazby modul vazeb.

UpdateSourceExceptionFilter Pokud není zadán v vazbu Bindingmodul vytvoří ValidationError s výjimkou a přidá ho do Validation.Errors kolekce vázaného prvku.

Metody rozšíření

Name Description
GetMethodInfo(Delegate)

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

Platí pro

Viz také