我有一个枚举声明如下:
public enum DirectionTypes
{
IN = 2,
OUT = 1
}
这个枚举用于用户控件,我需要在XAML中指定控件需要工作的方向。我在每个用户控件上创建了一个依赖属性,如下所示:
public static readonly DependencyProperty DirectionTypeProperty =
DependencyProperty.Register(
"DirectionType",
typeof(DirectionTypes),
typeof(TransactionGrid), new PropertyMetadata(DirectionTypes.IN));
public DirectionTypes DirectionType
{
get
{
return (DirectionTypes)GetValue(DirectionTypeProperty);
}
set
{
SetValue(DirectionTypeProperty, value);
}
}
然后我可以使用用户控件,如下所示:
<local:TransactionGrid x:Name="theGrid" DirectionType="OUT" />
我可以运行程序就好了。问题是DirectionType =“OUT”在Visual Studio 2015中导致智能感知错误。我在XAML属性下得到蓝色凹槽,我的设计师不会显示预览,而是说“无效标记”。错误显示DirectionTypes的Type转换器不支持从字符串转换。
我错过了什么才能让XAML正确解析。
明确指定枚举值,如下所示(假设DirectionTypes与本地名称空间相同):
<local:TransactionGrid x:Name="theGrid" DirectionType="{x:Static local:DirectionTypes.OUT}" />