Вы можете использовать TypeConverter
, если вы можете и хотите украсить свойство источника данных с помощью пользовательского атрибута.
В противном случае вы должны присоединиться к Parse
и Format
событиям Binding
объекта. К сожалению, это исключает использование конструктора для привязки для всех, кроме самых простых сценариев.
Например, допустим, вы хотели, чтобы TextBox
был привязан к целочисленному столбцу, представляющему километры, и вы хотели визуальное представление в милях:
В конструкторе:
Binding bind = new Binding("Text", source, "PropertyName");
bind.Format += bind_Format;
bind.Parse += bind_Parse;
textBox.DataBindings.Add(bind);
...
void bind_Format(object sender, ConvertEventArgs e)
{
int km = (int)e.Value;
e.Value = ConvertKMToMiles(km).ToString();
}
void bind_Parse(object sender, ConvertEventArgs e)
{
int miles = int.Parse((string)e.Value);
e.Value = ConvertMilesToKM(miles);
}