UpdateSourceExceptionFilterCallback Delegát
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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. |