Ответ 1
Вы можете использовать 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);
}