Enlace de datos para casilla de verificación con valores de cadena
-
03-07-2019 - |
Pregunta
Tengo que enlazar datarows a mis controles. Hasta ahora tan bueno. El problema ahora es que mi datarow solo contiene cadenas en la columna que tengo que enlazar, pero, por supuesto, la propiedad " verificada " de una casilla de verificación sólo toma argumentos booleanos.
¿Hay una manera de usar DataBinding aquí? Tal vez con algún tipo de convertidor en el medio?
Gracias
Solución
Utilice el ConvertEventHandler Delegate para cambiar los tipos de DataBinding.
Ejemplo
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";
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow