WPF设计器自定义属性 - 下拉列表

时间:2017-08-19 09:41:11

标签: wpf visual-studio designer custom-properties

我想在WPF中的用户控件上有一个自定义属性的下拉选项。 当我使用Enum作为属性时,一切正常:

/// <summary>
/// Interaction logic for Sample.xaml
/// </summary>
public partial class Sample : System.Windows.Controls.UserControl
{
    public Sample()
    {
        InitializeComponent();
    }

    [DefaultValue(Letters.A)]
    [Browsable(true)]
    [Category("ControlDisplay")]
    [Description("Letter")]
    public Letters Letter { get; set; }


    public enum Letters
    {
        A,
        B,
        C,
        D
    }
}

enter image description here

太棒了:)。

但我希望为自定义类甚至字符串实现此目的。 我该怎么办?

提前致谢。

1 个答案:

答案 0 :(得分:0)

最后得到了anwser(在挖掘了一些文档之后 - 很多)。 首先是Type Converter属性 然后一个很好的walktrought如何实现它是hereThis是我引领它的原因。

简而言之: 实现类型转换器GetStandardValuesSupported(ITypeDescriptorContext context)以返回true,并GetStandardValues(ITypeDescriptorContext context)返回属性类型的StandardValuesCollection。 最后只需装饰房产:

    [TypeConverter(typeof(MyClassConverter))]
    public MyClass MyProperty { get; set; }

设计器属性窗口现在有一个带有效值的下拉列表。