我已经使用以下错误装饰模板很长时间了:

<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>

...并且在运行时可以正常运行(据我所知)。

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

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

这只是一个令人讨厌的VS错误,还是VS提醒我需要适应WPF子系统中的某种更改?

最佳答案

ReadOnlyObservableCollection本身不公开CurrentItem属性。相反,CurrentItemCollectionView的概念,是在WPF中绑定(bind)项目集合时在内部创建的。

通过在绑定(bind)路径中使用CurrentItem,可以实现某个集合的special support to access the /

将绑定(bind)路径更改为Path=AdornedElement.(Validation.Errors)/ErrorContent以利用此支持。

关于wpf - 为什么现在AdornedElement。(Validation.Errors).CurrentItem.ErrorContent(VS2017 15.4)会导致智能感知错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47185638/

10-10 17:06