У меня есть особый случай ввода сетки свойств, где мне нужно было бы ввести Vector3 в строковом формате, скажем, «0, 5, 1».Я построил конвертер для него так:
public class Vector3Converter : ExpandableObjectConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return (sourceType == typeof(string));
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
string[] splitted = ((string)value).Remove(" ").Split(new char[] { ',' });
return new Vector3(float.Parse(splitted[0]), float.Parse(splitted[1]), float.Parse(splitted[2]));
}
}
Теперь это работает как-то, но по другой причине (не буду объяснять, это невероятно долго, но оправдано - я не мог избежать этого, изменивмой первоначальный дизайн), мне нужно знать, какое значение было в поле, прежде чем устанавливать новое (что как-то зависит от него).
Как я могу это сделать?