我有一个附加了属性的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));
GetBorderStyle
和SetBorderStyle
方法也存在,由于它们没有什么特别的作用,所以我没有将它们粘贴在这里。
当我修改它时,程序会按预期工作,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
解决了这个问题。