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



我有一个附加了属性的TextBox,Visual Studio给我一个错误,说该属性值无效,尽管它实际上是有效的。

这是文本框:

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

这是AttachedProperty:

public enum BorderStyle
{
Rounded,
BottomOnly,
None
}
public static DependencyProperty BorderStyleProperty =
DependencyProperty.RegisterAttached(
"BorderStyle",
typeof(BorderStyle),
typeof(TextBoxExtension));

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

当我修改它时,程序会按预期工作,BorderStyle的所有三个值都会按照预期工作(它们会在Style中触发不同的更改),甚至可视化的xaml编辑器也会按预期显示更改,但出于某种原因,visual Studio一直在给我这个特定的TextBox带来这个毫无意义的错误:

'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解决了这个问题。

相关内容

最新更新