आप अपने पूर्णांक संपत्ति के लिए कस्टम type converter को लागू करना चाहिए:
class MyData
{
[TypeConverter(typeof(CustomNumberTypeConverter))]
public int MyProp { get; set; }
}
PropertyGrid TypeConverter का उपयोग करता स्ट्रिंग है, जो यह ग्रिड में वस्तु मान प्रदर्शित करने के का उपयोग करता है करने के लिए अपने ऑब्जेक्ट प्रकार (इस मामले में पूर्णांक) कन्वर्ट करने के लिए। संपादन के दौरान, टाइप कनवर्टर एक स्ट्रिंग से वापस अपने ऑब्जेक्ट प्रकार में परिवर्तित हो जाता है।
public class CustomNumberTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context,
Type sourceType)
{
return sourceType == typeof(string);
}
public override object ConvertFrom(ITypeDescriptorContext context,
CultureInfo culture, object value)
{
if (value is string)
{
string s = (string)value;
return Int32.Parse(s, NumberStyles.AllowThousands, culture);
}
return base.ConvertFrom(context, culture, value);
}
public override object ConvertTo(ITypeDescriptorContext context,
CultureInfo culture, object value, Type destinationType)
{
if (destinationType == typeof(string))
return ((int)value).ToString("N0", culture);
return base.ConvertTo(context, culture, value, destinationType);
}
}
परिणाम::
propertyGrid.SelectedObject = new MyData { MyProp = 12345678 };
तो, आप प्रकार कनवर्टर जो पूर्णांक पूर्णांक के लिए वापस हजार विभाजक के साथ स्ट्रिंग में बदल जाएंगे और इस तरह के स्ट्रिंग पार्स करने में सक्षम होना चाहिए उपयोग करने की आवश्यकता
मैं आपको Getting the Most Out of the .NET Framework PropertyGrid Control एमएसडीएन लेख पढ़ने के लिए अनुशंसा करता हूं कि कैसे संपत्ति ग्रिड डब्ल्यू Orks और इसे कैसे अनुकूलित किया जा सकता है।
स्रोत
2013-10-02 15:28:18
ऐसा लगता है कि यह तीन गुण होना चाहिए, यानी प्रमुख, मामूली, संशोधन। यदि यह संभव है तो आपको अपना खुद का फॉर्मेटर लिखना होगा जिसे आप स्ट्रिंग.फॉर्मैट – Kcvin
जैसे उपयोग करेंगे। ओपी यूरोपीय नंबरिंग योजना का उपयोग हजारों विभाजक के साथ ''' और' '' जैसा नहीं है, जैसा कि अमेरिका में है। तो प्रश्न _not_ 'संस्करण' स्वरूपण से संबंधित नहीं है, लेकिन संख्यात्मक स्वरूपण। – ja72