向视觉工作室设计师公开自定义属性

时间:2015-03-30 00:26:07

标签: c# wpf visual-studio mvvm wpf-controls

我正在创建一个在usercontrol下子类化的自定义按钮。我试图找出如何将枚举属性暴露给设计器,以便我可以在使用设计器时设置枚举。我需要添加什么才能将控件的属性显示在设计器上?

namespace App1
{
    public enum foodType
    {
        Appetizers,
        Breakfast,
        Lunch,
        Dinner,
        Desserts,
        Drinks
    };

    public sealed partial class FoodTypeButton : UserControl
    {
        public foodType type
        {
            get { return type; }
            set { type = value; }
        }
        public FoodTypeButton()
        {
            this.InitializeComponent();
        }
    }
}

我想让这个按钮有一个枚举的原因是我可以将所有6个按钮传递给一个方法。这个方法将检查枚举并调用相应的按钮网格。

现在我有

appetizerButtonClicked()
{
//call other grid
}

breakfastButtonClicked()
{
//call other grid
}

lunchButtonClicked()
{
//other grid
}

依旧......

也许还有更好的方法可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

它在设计师面前展示给我。确保您已正确添加属性。 如果我的猜测是正确的,你会错误地给出属性定义。它会抛出stackoverflow异常。在给出的示例代码中,您忘记添加属性的私有成员定义。

    private foodType type;
    public foodType Type
    {
        get { return type; }
        set { type = value; }
    }

现在您可以在设计器中获取Type属性。