Gor*_*ran 16 .net wpf xaml exception
我使用以下模板进行验证错误:
<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>
Run Code Online (Sandbox Code Playgroud)
ToolTip工作正常,但在离开当前记录后会抛出以下异常:
System.Windows.Data错误:17:无法从'(Validation.Errors)'获取'Item []'值(类型'ValidationError')(类型'ReadOnlyObservableCollection`1').BindingExpression:路径= AdornedElement(0)[0] .ErrorContent; DataItem ='AdornedElementPlaceholder'(Name ='adorner'); target元素是'Polygon'(Name =''); target属性是'ToolTip'(类型'Object')ArgumentOutOfRangeException:'System.ArgumentOutOfRangeException:指定的参数超出了有效值的范围.
我尝试了HasError财产,但失败了.任何人有任何想法?
Pet*_*sen 30
当没有验证错误时,绑定仍然试图访问Validation.Errors返回的ReadOnlyObservableCollection中的第一个元素,但由于它是空的,因此抛出异常.
绑定系统只是吞下了异常,但它仍然很烦人且不必要.
而不是像这样绑定:
Path=AdornedElement.(Validation.Errors)[0].ErrorContent
Run Code Online (Sandbox Code Playgroud)
..你可以这样做,以避免例外:
Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4423 次 |
| 最近记录: |