TypeConverter和DataBinding

时间:2017-07-18 12:54:53

标签: c# .net formatting typeconverter

我很难解决在弧度和角度之间进行转换的问题(TypeConverter)。

在Win Form中,我有一个TextBox,它绑定了一个类'Triangle'的属性AngleX。

我的属性以弧度存储值,但我想以角度格式向用户显示,如果用户在UI中更改它,我需要以弧度形式将其返回给类。

此时我有这段代码:

public RadAngleConverter : TypeConverter
{
   public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
    {
        return destinationType == typeof(Int64);
    }

    public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
    {
        return  Math.PI * (Int64)value / 180.0;
    }

    public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
    {
        return sourceType == typeof(Int64);
    }

    public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
    {
        return (Int64)value * (180.0 / Math.PI);             
    }
}

在我的班级'Triangle'中我有这段代码:

public class Triangle()
{
...
        [TypeConverter(typeof(RadGrausFormat))] 
        public double AngleX { get; set; }
...
}

最后在UI中,这段代码:

...
 TextBox1.DataBindings.Add("Text",instanceClass,"AngleX",formattingEnable: true)
...

但它没有用!

有人可以帮我这个吗?

0 个答案:

没有答案