附加 属性 的 WPF "not a valid value for property" 错误,即使它按预期工作

WPF "not a valid value for property" error for attached property even though it works as expected

我有一个带有附加 属性 的文本框,Visual Studio 给我一个错误,指出 属性 值无效,尽管它实际上是有效的.

这是文本框:

<TextBox 
    HorizontalAlignment="Stretch" 
    VerticalAlignment="Top" 
    Width="Auto" 
    styleExtensions:TextBoxExtension.BorderStyle="None"/>

这是附加属性:

public enum BorderStyle
{
    Rounded,
    BottomOnly,
    None
}

public static DependencyProperty BorderStyleProperty =
        DependencyProperty.RegisterAttached(
            "BorderStyle",
            typeof(BorderStyle),
            typeof(TextBoxExtension));

GetBorderStyleSetBorderStyle 方法也存在,因为它们没有什么特别的,所以我没有将它们粘贴在这里。

当我运行它时,程序按预期工作,BorderStyle 的所有三个值都按照预期进行(它们触发 Style 中的不同变化)甚至视觉 xaml 编辑器按预期显示更改,但由于某种原因 Visual Studio 一直给我这个特定文本框的这个毫无意义的错误:

'None' is not a valid value for property 'BorderStyle'

枚举的所有三个值仍然存在错误。相同的附加 属性 也用于 ControlTemplate 的其他地方,在不同的 TextBox 上,它不会触发此错误。

我试过清理解决方案、重建它、删除 bin 和 obj 文件夹、删除 .vs 文件夹,但错误一直出现。

是我做错了什么,还是Visual Studio错了?如果是这样,是否有禁用此特定错误消息的解决方法?

我正在使用 Visual Studio 2017 15.8.8 和 .NET Framework 4.7.03056

编辑: 在 VS 的新 2019 预览中可以观察到相同的行为。我要疯了吗?

我找到了解决方案。写 {x:Static styleExtensions:BorderStyle.None} 而不是 None 解决了问题。