Dot-Net
驗證錯誤模板 - 綁定異常
我正在使用以下模板進行驗證錯誤:
<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>ToolTip 工作正常,但在離開目前記錄後拋出以下異常:
System.Windows.Data 錯誤:17:無法從“(Validation.Errors)”(類型“ReadOnlyObservableCollection`1”)獲取“Item []”值(類型“ValidationError”)。BindingExpression:Path=AdornedElement.(0)[0].ErrorContent; DataItem=‘AdornedElementPlaceholder’(名稱=‘裝飾者’);目標元素是 ‘Polygon’ (Name=’’); 目標屬性是“工具提示”(類型“對象”) ArgumentOutOfRangeException:“System.ArgumentOutOfRangeException:指定的參數超出了有效值的範圍。
我嘗試了
HasError財產,但失敗了。有人有什麼想法嗎?
當沒有驗證錯誤時,綁定仍然試圖訪問 Validation.Errors 返回的 ReadOnlyObservableCollection 中的第一個元素,但是因為它是空的,所以拋出了異常。
綁定係統只是吞下異常,但它仍然煩人且不必要。
而不是像這樣綁定:
Path=AdornedElement.(Validation.Errors)[0].ErrorContent..你可以這樣做,以避免異常:
Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent