我正在使用以下模板验证错误:
<ControlTemplate>
<Border BorderBrush="Red" BorderThickness="1">
<Grid>
<Polygon Points="8,8 8,0 0,0"
Stroke="Black"
StrokeThickness="1"
Fill="Red"
HorizontalAlignment="Right"
VerticalAlignment="Top"
ToolTip="{Binding ElementName=adorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}" />
<AdornedElementPlaceholder x:Name="adorner"/>
</Grid>
</Border>
</ControlTemplate>
工具提示工作正常,但离开当前记录后会引发以下异常:
System.Windows.Data 错误:17:无法获取“Item[]”值(类型
'ValidationError') 来自 '(Validation.Errors)' (类型
'ReadOnlyObservableCollection`1')。
BindingExpression:Path=AdornedElement.(0)[0].ErrorContent;
DataItem='AdornedElementPlaceholder' (Name='adorner');目标元素
是“多边形”(名称=“”);目标属性是“ToolTip”(类型“Object”)
ArgumentOutOfRangeException:'System.ArgumentOutOfRangeException:
指定的参数超出了有效值的范围。
我尝试过HasError
财产,但失败了。有人有什么想法吗?
当没有验证错误时,绑定仍尝试访问 Validation.Errors 返回的 ReadOnlyObservableCollection 中的第一个元素,但由于它为空,因此会引发异常。
绑定系统只是吞掉了异常,但它仍然令人讨厌且不必要。
而不是像这样绑定:
Path=AdornedElement.(Validation.Errors)[0].ErrorContent
..你可以这样做,以避免异常:
Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)