2017-08-19 6 views
0

WPFのユーザーコントロールのカスタムプロパティのドロップダウン選択をしたいと思います。私はプロパティとして列挙型を使用する場合 すべてが正常に動作します:WPFデザイナのカスタムプロパティ - ドロップダウン

/// <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

恐ろしい:)。

しかし、これはカスタムクラスや文字列でも実現したいと思います。 どうすればいいですか?

ありがとうございます。

答えて

0

最後にanwserを取得しました(いくつかのドキュメントを掘り下げた後 - 多く)。 まず、Type Converterアトリビュート があり、それを実装する方法はhereです。 Thisは私にそれを導いたものです。一言で言えば

: プロパティタイプにStandardValuesCollectionを返すようにtrueを返すために型コンバータGetStandardValuesSupported(ITypeDescriptorContext context)を実装しGetStandardValues(ITypeDescriptorContext context)。 は最後にちょうどそうのようなプロパティを飾る:

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

デザイナーのプロパティウィンドウは、現在有効な値を持つドロップダウンがあります。

関連する問題