사용자 정의해야합니다.
class YesNoConverter : BooleanConverter {
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) {
if (value is bool && destinationType == typeof(string)) {
return values[(bool)value ? 1 : 0];
}
return base.ConvertTo(context, culture, value, destinationType);
}
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) {
string txt = value as string;
if (values[0] == txt) return false;
if (values[1] == txt) return true;
return base.ConvertFrom(context, culture, value);
}
private string[] values = new string[] { "No", "Yes" };
}
샘플 사용 :이처럼
class MyControl : Control {
[TypeConverter(typeof(YesNoConverter))]
public bool Prop { get; set; }
}
당신은 다른 언어로이 작품을 만들기 위해의 System.Globalization로부터 도움을받을 수 없습니다.
감사합니다. 값을 더블 클릭하면 "속성 값이 유효하지 않습니다."/ " 'System.String'형식의 개체를 'System.Boolean'형식으로 변환 할 수 없습니다." –
어, 피타. 런타임에 이것을 디버깅 할 수있는 폼에 PropertyGrid를 배치하십시오. –
bool에 대한 캐스트 대신 System :: Convert :: ToBoolean (값)이 필요할 수 있습니다. – ThePragmatist