为什么AdornedElement.(Validation.Errors).CurrentItem.ErrorContent now(VS2017 15.4)导致intellisense错误?

BCA*_*BCA 9 wpf xaml visual-studio

我一直在使用以下错误装饰模板很长一段时间了:

<ControlTemplate x:Key="ErrorAdornerTemplateStyle" TargetType="{x:Type Control}">
    <Grid ClipToBounds="False" >
        <Border BorderBrush="Red" BorderThickness="2" Margin="-1" 
         ToolTip="{Binding ElementName=adornedElement, Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent }">
            <AdornedElementPlaceholder Name="adornedElement" />
        </Border>
        <Polygon Points="15,15 15,0 0,0"
                 Fill="Red"
                 HorizontalAlignment="Right"
                 VerticalAlignment="Top" 
                 ToolTip="{Binding ElementName=adornedElement, Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent }"/>
    </Grid>
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)

...它在运行时工作得很好(据我所知).

但是,在过去一个月对VS和WPF以及NET Standard 2进行了一系列升级之后,我注意到我的syles xaml文件中的intellisense给出了以下CurrentItem标识错误:

在'ReadOnlyObservableCollection'类型中找不到属性'CurrentItem'.

这只是一个令人讨厌的VS错误,还是VS警告我需要适应的WPF子系统中的某种变化?

gre*_*k40 18

ReadOnlyObservableCollection本身不公开CurrentItem财产.相反,它CurrentItemCollectionView在WPF中绑定项集合时内部创建的概念.

通过在绑定路径中使用来访问CurrentItem集合有一些特殊支持/.

更改绑定路径Path=AdornedElement.(Validation.Errors)/ErrorContent以使用此支持.

  • @gbianchi不,`/`代替`.CurrentItem.`,它不能一起使用。 (2认同)