आपको इसे अनुकूलित करना होगा।
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 से कोई मदद नहीं मिलती है।
स्रोत
2011-01-12 14:07:33
धन्यवाद, बंद करें, लेकिन जब मैं मूल्य पर डबल क्लिक करता हूं तो मुझे एक त्रुटि डीएलजी मिलती है "संपत्ति मान वैध नहीं है"/"प्रकार का ऑब्जेक्ट 'सिस्टम। स्ट्रिंग' को 'System.Boolean' प्रकार में परिवर्तित नहीं किया जा सकता है।" –
उह, पिटा। रनटाइम पर इसे डिबग करने के लिए प्रॉपर्टीग्रिड को किसी फ़ॉर्म पर रखें। –
आपको बस्ट के बजाय कास्ट के बजाय सिस्टम :: कनवर्ट :: ToBoolean (value) की आवश्यकता हो सकती है। – ThePragmatist