如何将自定义属性限制为XAML中的可用值

问题描述 投票:0回答:1

我有一个枚举声明如下:

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正确解析。

wpf xaml visual-studio-2015 enums
1个回答
0
投票

明确指定枚举值,如下所示(假设DirectionTypes与本地名称空间相同):

<local:TransactionGrid x:Name="theGrid" DirectionType="{x:Static local:DirectionTypes.OUT}" />
© www.soinside.com 2019 - 2024. All rights reserved.