HelloControlもそれっぽくなってきたところで、GreetプロパティのNameプロパティをいくつかの名前の候補の中からも選べるようにしたい!
絵にするとこんな感じ
StringConverterを継承してこんな感じで実装するみたいだ。
public class GreetNameConverter : StringConverter { public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { // ドロップダウンで選択可能にするよ〜 return true; } public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { // 選択肢 return new StandardValuesCollection(new String[] { "太郎", "二郎", "三郎" }); } public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) { // 選択肢以外の値も入力していいよ〜 return false; } }
これをGreetMessageクラスのNameプロパティのTypeConverter属性で指定してあげれば完成。
[TypeConverter(typeof(GreetNameConverter))] public string Name { get { return name; } set { name = value; } }
これは簡単だった。