Привязка данных для флажка со строковыми значениями
Я должен привязать датары к своим элементам управления. Все идет нормально. Проблема в том, что мой datarow содержит только строки в столбце, который я должен связать, но, конечно, свойство Checked флажка принимает только логические аргументы.
Есть ли способ использовать DataBinding здесь? Может быть, с каким-то конвертером между ними?
Спасибо
2 ответа
Решение
Используйте делегат ConvertEventHandler для изменения типов для привязки данных.
пример
Binding binding = new Binding("checked", dt, "string_field");
binding.Format += new ConvertEventHandler(binding_Format);
binding.Parse += new ConvertEventHandler(binding_Parse);
this.checkbox1.DataBindings.Add(binding);
void binding_Format(object sender, ConvertEventArgs e)
{
if (e.Value.ToString() == "yep") e.Value = true;
else e.Value = false;
}
void binding_Parse(object sender, ConvertEventArgs e)
{
if ((bool)e.Value) e.Value = "yep";
else e.Value = "nope";
}
Что именно в датарове определяет, следует ли проверять cb или нет? Является ли это, если значение ячейки не DBNULL.value?