J'essaie d'utiliser la validation d'exception sur une cellule dans un DataGrid avec un style dans EditingElementStyle de DataGridTextColumn pour définir une info-bulle avec le contenu de l'erreur. L'erreur se produit mais n'est pas interceptée ou affichée dans WPF.Erreur de validation de DataGrid WPF non interceptée
Le code et l'exception sont indiqués ci-dessous. Quelqu'un peut-il me dire ce dont j'ai besoin pour résoudre ce problème?
Cheers,
Berryl
est ici l'exception:
System.Windows.Data Error: 8 : Cannot save value from target back to source.
BindingExpression:Path=Allocations[6].Amount; DataItem='ActivityViewModel' (HashCode=-938045583);
target element is 'TextBox' (Name='');
target property is 'Text' (type 'String')
TargetInvocationException:'System.Reflection.TargetInvocationException:
Exception has been thrown by the target of an invocation. --->
Domain.Core.PreconditionException: An allocation must be less than one day.
Voici le XAML pour la DataGridTextColumn:
<dg:DataGridTextColumn
....
EditingElementStyle="{StaticResource cellEditStyle}"
Binding="{Binding Allocations[6].Amount, Converter={StaticResource amtConv},
ValidatesOnExceptions=True}"
/>
Et le style est ici qui devrait fournir une rétroaction infobulle erreur:
<Style x:Key="cellEditStyle" TargetType="{x:Type TextBox}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter
Property="ToolTip"
Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>