UpdateSourceExceptionFilterCallback Delegera
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar den metod som hanterar undantag som genereras under uppdateringen av bindningskällans värde. Detta måste användas med 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
Parametrar
- bindExpression
- Object
Objektet med undantaget.
- exception
- Exception
Undantaget påträffades.
Returvärde
Ett objekt som vanligtvis är något av följande:
| Värde | Beskrivning |
|---|---|
null | Ignorera eventuella undantag. Standardbeteendet (om det inte finns ) UpdateSourceExceptionFilterCallbackär att skapa ett ValidationError med undantaget och lägga till det i Errors samlingen av det bundna elementet. |
| Alla objekt | Så här skapar du ett ValidationError objekt med ErrorContent värdet för objektet.
Objektet ValidationError läggs till Errors i samlingen av det bundna elementet. |
| Ett ValidationError objekt | Så här anger BindingExpression du objektet eller MultiBindingExpression som BindingInError. Objektet ValidationError läggs till Errors i samlingen av det bundna elementet. |
Exempel
Egenskapen Text för följande TextBox är databunden till en källegenskap Age3 som är av typen int. Söker ExceptionValidationRule efter undantag som utlöses under uppdateringen av källegenskapen (till exempel när användaren anger ett värde som inte kan konverteras till ett heltal).
<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>
Du har möjlighet att ange anpassad logik för att hantera dessa undantag. I följande exempel visas hur du använder egenskapen UpdateSourceExceptionFilter för att ange en UpdateSourceExceptionFilterCallback:
BindingExpression myBindingExpression = textBox3.GetBindingExpression(TextBox.TextProperty);
Binding myBinding = myBindingExpression.ParentBinding;
myBinding.UpdateSourceExceptionFilter = new UpdateSourceExceptionFilterCallback(ReturnExceptionHandler);
myBindingExpression.UpdateSource();
Följande är ett exempel på implementering av en UpdateSourceExceptionFilterCallback:
object ReturnExceptionHandler(object bindingExpression, Exception exception)
{
return "This is from the UpdateSourceExceptionFilterCallBack.";
}
Det fullständiga exemplet finns i Binding Validation Sample.
Kommentarer
Om du har associerat ExceptionValidationRule med objektet Binding har du möjlighet att använda UpdateSourceExceptionFilter egenskapen för att ställa in återanropet för att tillhandahålla anpassad logik för att hantera undantagen. Det här återanropet anropas när ett undantag påträffas när bindningsmotorn uppdaterar bindningskällans värde.
Om en UpdateSourceExceptionFilter inte anges på Binding skapar bindningsmotorn en ValidationError med undantaget och lägger till den i samlingen Validation.Errors för det bundna elementet.
Tilläggsmetoder
| Name | Description |
|---|---|
| GetMethodInfo(Delegate) |
Hämtar ett objekt som representerar den metod som representeras av det angivna ombudet. |